diff --git a/.gitignore b/.gitignore index f785b9a6..261d3735 100644 --- a/.gitignore +++ b/.gitignore @@ -79,3 +79,4 @@ docs_build/sphinx_matlab/api-matlab docs_build/xml-c docs_build/xml-cpp docs_build/xml-matlab +docs_build/sphinx/_doxygen diff --git a/README.rst b/README.rst index 02f03b19..96836182 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,13 @@ -Splines |Build Status| |View Splines on File Exchange| -====================================================== + +.. |Build Status| image:: https://travis-ci.org/ebertolazzi/Splines.svg?branch=master + :target: https://travis-ci.org/ebertolazzi/Splines + +.. |View Splines on File Exchange| image:: https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg + :target: https://www.mathworks.com/matlabcentral/fileexchange/54481-splines + +Splines +======= +|Build Status| |View Splines on File Exchange| Introduction ------------ @@ -7,6 +15,9 @@ Introduction ``Splines`` is a set of C++ classes (with MATLAB mex interface) which implements varios spline interpolation. +- `online manuals `__ +- `github repos `__ + Matlab Toolbox -------------- @@ -89,7 +100,7 @@ Compile and tests Edit makefile file to match compiler of your OS and do: -.. code:: sh +.. code:: bash make @@ -109,12 +120,6 @@ To run the test rake run # using rake on linux and osx rake run_win # using rake on windows -Documentation and home ----------------------- - -- http://ebertolazzi.github.io/Splines -- https://github.com/ebertolazzi/Splines - Developer --------- @@ -137,8 +142,3 @@ References - **Hiroshi Akima**, *A Method of Bivariate Interpolation and Smooth Surface Fitting for Irregularly Distributed Data Points*. ACM Transactions on Mathematical Software, Vol.4, 148-164, 1978. - -.. |Build Status| image:: https://travis-ci.org/ebertolazzi/Splines.svg?branch=master - :target: https://travis-ci.org/ebertolazzi/Splines -.. |View Splines on File Exchange| image:: https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg - :target: https://www.mathworks.com/matlabcentral/fileexchange/54481-splines diff --git a/Splines.prj b/Splines.prj index 812589e7..458fd7b2 100644 --- a/Splines.prj +++ b/Splines.prj @@ -1,5 +1,5 @@ - + Splines Enrico Bertolazzi enico.bertolazzi@unitn.it @@ -15,9 +15,11 @@ The classes are the following: - BesselSpline, for Bessel "non oscillatory" spline interpolation - HermiteSpline - PchipSpline - - QuinticSpline, Simple quintic spline based on PCHIP - ${PROJECT_ROOT}/toolbox/tests/icon.jpg - 1.0.6 + - QuinticSpline, Simple quintic spline based on PCHIP + +Online doc at: http://ebertolazzi.github.io/Splines + ${PROJECT_ROOT}/toolbox/icon.png + 1.1.0 ${PROJECT_ROOT}/Splines.mltbx MATLAB @@ -114,8 +116,12 @@ setup.m ${PROJECT_ROOT}/toolbox/CompileSplinesLib.m + ${PROJECT_ROOT}/toolbox/GenericContainer-e7b1dc76.o.tmp ${PROJECT_ROOT}/toolbox/bin ${PROJECT_ROOT}/toolbox/demos.xml + ${PROJECT_ROOT}/toolbox/icon.pdf + ${PROJECT_ROOT}/toolbox/icon.png + ${PROJECT_ROOT}/toolbox/icon.svg ${PROJECT_ROOT}/toolbox/lib ${PROJECT_ROOT}/toolbox/license.txt ${PROJECT_ROOT}/toolbox/src diff --git a/Xcode/Splines.xcodeproj/project.pbxproj b/Xcode/Splines.xcodeproj/project.pbxproj index 385a1af8..61b1cf10 100644 --- a/Xcode/Splines.xcodeproj/project.pbxproj +++ b/Xcode/Splines.xcodeproj/project.pbxproj @@ -7,30 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - D9268AED25CABC1E0074F122 /* SplineQuinticBase.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD125CABC1E0074F122 /* SplineQuinticBase.cc */; }; - D9268AEE25CABC1E0074F122 /* SplineAkima.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD225CABC1E0074F122 /* SplineAkima.cc */; }; - D9268AEF25CABC1E0074F122 /* SplineSetGC.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD325CABC1E0074F122 /* SplineSetGC.cc */; }; - D9268AF025CABC1E0074F122 /* SplineLinear.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD525CABC1E0074F122 /* SplineLinear.cc */; }; - D9268AF125CABC1E0074F122 /* SplineQuintic.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD625CABC1E0074F122 /* SplineQuintic.cc */; }; - D9268AF225CABC1E0074F122 /* SplineCubicBase.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD725CABC1E0074F122 /* SplineCubicBase.cc */; }; - D9268AF325CABC1E0074F122 /* SplineSet.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD825CABC1E0074F122 /* SplineSet.cc */; }; - D9268AF425CABC1E0074F122 /* SplineConstant.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD925CABC1E0074F122 /* SplineConstant.cc */; }; - D9268AF525CABC1E0074F122 /* SplineBiQuintic.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268ADA25CABC1E0074F122 /* SplineBiQuintic.cc */; }; - D9268AF625CABC1E0074F122 /* SplinePchip.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268ADB25CABC1E0074F122 /* SplinePchip.cc */; }; - D9268AF725CABC1E0074F122 /* SplinesUtils.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268ADC25CABC1E0074F122 /* SplinesUtils.cc */; }; - D9268AF825CABC1E0074F122 /* SplineBessel.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268ADD25CABC1E0074F122 /* SplineBessel.cc */; }; - D9268AF925CABC1E0074F122 /* SplinesBivariate.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268ADE25CABC1E0074F122 /* SplinesBivariate.cc */; }; - D9268AFA25CABC1E0074F122 /* SplineVec.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AE025CABC1E0074F122 /* SplineVec.cc */; }; - D9268AFB25CABC1E0074F122 /* Splines.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AE125CABC1E0074F122 /* Splines.cc */; }; - D9268AFC25CABC1E0074F122 /* Splines2D.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AE225CABC1E0074F122 /* Splines2D.cc */; }; - D9268AFD25CABC1E0074F122 /* SplineBiCubic.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AE325CABC1E0074F122 /* SplineBiCubic.cc */; }; - D9268AFE25CABC1E0074F122 /* Splines1D.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AE525CABC1E0074F122 /* Splines1D.cc */; }; - D9268AFF25CABC1E0074F122 /* SplineCubic.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AE625CABC1E0074F122 /* SplineCubic.cc */; }; - D9268B0025CABC1E0074F122 /* SplineHermite.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AE925CABC1E0074F122 /* SplineHermite.cc */; }; - D9268B0125CABC1E0074F122 /* SplineBilinear.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AEA25CABC1E0074F122 /* SplineBilinear.cc */; }; - D9268B0225CABC1E0074F122 /* SplinesCinterface.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AEB25CABC1E0074F122 /* SplinesCinterface.cc */; }; - D9268B0325CABC1E0074F122 /* SplineAkima2D.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AEC25CABC1E0074F122 /* SplineAkima2D.cc */; }; - D9268B3F25CABD430074F122 /* test9.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268B0725CABC270074F122 /* test9.cc */; }; D93B173C25CB709F0033E2CA /* SplineBessel.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268ADD25CABC1E0074F122 /* SplineBessel.cc */; }; D93B173D25CB709F0033E2CA /* SplineHermite.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AE925CABC1E0074F122 /* SplineHermite.cc */; }; D93B173E25CB709F0033E2CA /* SplineCubicBase.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD725CABC1E0074F122 /* SplineCubicBase.cc */; }; @@ -54,22 +30,13 @@ D93B175025CB709F0033E2CA /* SplineSet.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD825CABC1E0074F122 /* SplineSet.cc */; }; D93B175225CB709F0033E2CA /* SplinesUtils.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268ADC25CABC1E0074F122 /* SplinesUtils.cc */; }; D93B175325CB709F0033E2CA /* SplineQuinticBase.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268AD125CABC1E0074F122 /* SplineQuinticBase.cc */; }; - D93B176125CB70AC0033E2CA /* test2.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268B0925CABC270074F122 /* test2.cc */; }; D93B176925CB70E30033E2CA /* libUtils_osx_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D93B176625CB70E30033E2CA /* libUtils_osx_static.a */; }; D93B176A25CB70E30033E2CA /* libQuartic_osx_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D93B176725CB70E30033E2CA /* libQuartic_osx_static.a */; }; D93B176B25CB70E30033E2CA /* libGenericContainer_osx_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D93B176825CB70E30033E2CA /* libGenericContainer_osx_static.a */; }; + D988F7C326347D2C00EF8E76 /* test1.cc in Sources */ = {isa = PBXBuildFile; fileRef = D9268B0E25CABC270074F122 /* test1.cc */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ - D9268AC225CABBFD0074F122 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; D93B175825CB709F0033E2CA /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -82,11 +49,9 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - D9268AC425CABBFD0074F122 /* test9 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = test9; sourceTree = BUILT_PRODUCTS_DIR; }; D9268AD125CABC1E0074F122 /* SplineQuinticBase.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SplineQuinticBase.cc; sourceTree = ""; }; D9268AD225CABC1E0074F122 /* SplineAkima.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SplineAkima.cc; sourceTree = ""; }; D9268AD325CABC1E0074F122 /* SplineSetGC.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SplineSetGC.cc; sourceTree = ""; }; - D9268AD425CABC1E0074F122 /* Splines_doxygen.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Splines_doxygen.hh; sourceTree = ""; }; D9268AD525CABC1E0074F122 /* SplineLinear.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SplineLinear.cc; sourceTree = ""; }; D9268AD625CABC1E0074F122 /* SplineQuintic.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SplineQuintic.cc; sourceTree = ""; }; D9268AD725CABC1E0074F122 /* SplineCubicBase.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SplineCubicBase.cc; sourceTree = ""; }; @@ -153,20 +118,13 @@ D9268B3925CABC6E0074F122 /* ozstream.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ozstream.hpp; sourceTree = ""; }; D9268B3A25CABC6E0074F122 /* ThreadPool.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ThreadPool.hxx; sourceTree = ""; }; D9268B3B25CABC6E0074F122 /* GenericContainer_doc.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = GenericContainer_doc.hh; sourceTree = ""; }; - D93B175C25CB709F0033E2CA /* test2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = test2; sourceTree = BUILT_PRODUCTS_DIR; }; + D93B175C25CB709F0033E2CA /* test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = test; sourceTree = BUILT_PRODUCTS_DIR; }; D93B176625CB70E30033E2CA /* libUtils_osx_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libUtils_osx_static.a; sourceTree = ""; }; D93B176725CB70E30033E2CA /* libQuartic_osx_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libQuartic_osx_static.a; sourceTree = ""; }; D93B176825CB70E30033E2CA /* libGenericContainer_osx_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libGenericContainer_osx_static.a; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - D9268AC125CABBFD0074F122 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; D93B175425CB709F0033E2CA /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -194,8 +152,7 @@ D9268AC525CABBFD0074F122 /* Products */ = { isa = PBXGroup; children = ( - D9268AC425CABBFD0074F122 /* test9 */, - D93B175C25CB709F0033E2CA /* test2 */, + D93B175C25CB709F0033E2CA /* test */, ); name = Products; sourceTree = ""; @@ -207,7 +164,6 @@ D9268AD325CABC1E0074F122 /* SplineSetGC.cc */, D9268AD125CABC1E0074F122 /* SplineQuinticBase.cc */, D9268AD225CABC1E0074F122 /* SplineAkima.cc */, - D9268AD425CABC1E0074F122 /* Splines_doxygen.hh */, D9268AD525CABC1E0074F122 /* SplineLinear.cc */, D9268AD625CABC1E0074F122 /* SplineQuintic.cc */, D9268AD725CABC1E0074F122 /* SplineCubicBase.cc */, @@ -332,26 +288,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - D9268AC325CABBFD0074F122 /* test9 */ = { - isa = PBXNativeTarget; - buildConfigurationList = D9268ACB25CABBFD0074F122 /* Build configuration list for PBXNativeTarget "test9" */; - buildPhases = ( - D9268AC025CABBFD0074F122 /* Sources */, - D9268AC125CABBFD0074F122 /* Frameworks */, - D9268AC225CABBFD0074F122 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = test9; - productName = Splines; - productReference = D9268AC425CABBFD0074F122 /* test9 */; - productType = "com.apple.product-type.tool"; - }; - D93B173A25CB709F0033E2CA /* test2 */ = { + D93B173A25CB709F0033E2CA /* test */ = { isa = PBXNativeTarget; - buildConfigurationList = D93B175925CB709F0033E2CA /* Build configuration list for PBXNativeTarget "test2" */; + buildConfigurationList = D93B175925CB709F0033E2CA /* Build configuration list for PBXNativeTarget "test" */; buildPhases = ( D93B173B25CB709F0033E2CA /* Sources */, D93B175425CB709F0033E2CA /* Frameworks */, @@ -361,9 +300,9 @@ ); dependencies = ( ); - name = test2; + name = test; productName = Splines; - productReference = D93B175C25CB709F0033E2CA /* test2 */; + productReference = D93B175C25CB709F0033E2CA /* test */; productType = "com.apple.product-type.tool"; }; /* End PBXNativeTarget section */ @@ -372,12 +311,7 @@ D9268ABC25CABBFD0074F122 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1230; - TargetAttributes = { - D9268AC325CABBFD0074F122 = { - CreatedOnToolsVersion = 12.3; - }; - }; + LastUpgradeCheck = 1240; }; buildConfigurationList = D9268ABF25CABBFD0074F122 /* Build configuration list for PBXProject "Splines" */; compatibilityVersion = "Xcode 9.3"; @@ -392,44 +326,12 @@ projectDirPath = ""; projectRoot = ""; targets = ( - D93B173A25CB709F0033E2CA /* test2 */, - D9268AC325CABBFD0074F122 /* test9 */, + D93B173A25CB709F0033E2CA /* test */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - D9268AC025CABBFD0074F122 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D9268AF825CABC1E0074F122 /* SplineBessel.cc in Sources */, - D9268B0025CABC1E0074F122 /* SplineHermite.cc in Sources */, - D9268AF225CABC1E0074F122 /* SplineCubicBase.cc in Sources */, - D9268AF625CABC1E0074F122 /* SplinePchip.cc in Sources */, - D9268AEF25CABC1E0074F122 /* SplineSetGC.cc in Sources */, - D9268AFC25CABC1E0074F122 /* Splines2D.cc in Sources */, - D9268AFD25CABC1E0074F122 /* SplineBiCubic.cc in Sources */, - D9268B0125CABC1E0074F122 /* SplineBilinear.cc in Sources */, - D9268AF425CABC1E0074F122 /* SplineConstant.cc in Sources */, - D9268AF025CABC1E0074F122 /* SplineLinear.cc in Sources */, - D9268AF125CABC1E0074F122 /* SplineQuintic.cc in Sources */, - D9268AFB25CABC1E0074F122 /* Splines.cc in Sources */, - D9268AFA25CABC1E0074F122 /* SplineVec.cc in Sources */, - D9268AFF25CABC1E0074F122 /* SplineCubic.cc in Sources */, - D9268AF525CABC1E0074F122 /* SplineBiQuintic.cc in Sources */, - D9268AEE25CABC1E0074F122 /* SplineAkima.cc in Sources */, - D9268B0225CABC1E0074F122 /* SplinesCinterface.cc in Sources */, - D9268AFE25CABC1E0074F122 /* Splines1D.cc in Sources */, - D9268AF925CABC1E0074F122 /* SplinesBivariate.cc in Sources */, - D9268B0325CABC1E0074F122 /* SplineAkima2D.cc in Sources */, - D9268AF325CABC1E0074F122 /* SplineSet.cc in Sources */, - D9268B3F25CABD430074F122 /* test9.cc in Sources */, - D9268AF725CABC1E0074F122 /* SplinesUtils.cc in Sources */, - D9268AED25CABC1E0074F122 /* SplineQuinticBase.cc in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; D93B173B25CB709F0033E2CA /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -453,8 +355,8 @@ D93B174C25CB709F0033E2CA /* SplinesCinterface.cc in Sources */, D93B174D25CB709F0033E2CA /* Splines1D.cc in Sources */, D93B174E25CB709F0033E2CA /* SplinesBivariate.cc in Sources */, + D988F7C326347D2C00EF8E76 /* test1.cc in Sources */, D93B174F25CB709F0033E2CA /* SplineAkima2D.cc in Sources */, - D93B176125CB70AC0033E2CA /* test2.cc in Sources */, D93B175025CB709F0033E2CA /* SplineSet.cc in Sources */, D93B175225CB709F0033E2CA /* SplinesUtils.cc in Sources */, D93B175325CB709F0033E2CA /* SplineQuinticBase.cc in Sources */, @@ -579,25 +481,10 @@ }; name = Release; }; - D9268ACC25CABBFD0074F122 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - D9268ACD25CABBFD0074F122 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; D93B175A25CB709F0033E2CA /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -606,6 +493,7 @@ D93B175B25CB709F0033E2CA /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -623,16 +511,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D9268ACB25CABBFD0074F122 /* Build configuration list for PBXNativeTarget "test9" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D9268ACC25CABBFD0074F122 /* Debug */, - D9268ACD25CABBFD0074F122 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D93B175925CB709F0033E2CA /* Build configuration list for PBXNativeTarget "test2" */ = { + D93B175925CB709F0033E2CA /* Build configuration list for PBXNativeTarget "test" */ = { isa = XCConfigurationList; buildConfigurations = ( D93B175A25CB709F0033E2CA /* Debug */, diff --git a/Xcode/Splines.xcodeproj/project.xcworkspace/xcuserdata/enrico.xcuserdatad/UserInterfaceState.xcuserstate b/Xcode/Splines.xcodeproj/project.xcworkspace/xcuserdata/enrico.xcuserdatad/UserInterfaceState.xcuserstate index eb2d01d4..18e11808 100644 Binary files a/Xcode/Splines.xcodeproj/project.xcworkspace/xcuserdata/enrico.xcuserdatad/UserInterfaceState.xcuserstate and b/Xcode/Splines.xcodeproj/project.xcworkspace/xcuserdata/enrico.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Xcode/Splines.xcodeproj/xcuserdata/enrico.xcuserdatad/xcschemes/xcschememanagement.plist b/Xcode/Splines.xcodeproj/xcuserdata/enrico.xcuserdatad/xcschemes/xcschememanagement.plist index cd6d4196..45516ed6 100644 --- a/Xcode/Splines.xcodeproj/xcuserdata/enrico.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Xcode/Splines.xcodeproj/xcuserdata/enrico.xcuserdatad/xcschemes/xcschememanagement.plist @@ -9,19 +9,24 @@ orderHint 0 - test2.xcscheme_^#shared#^_ + test.xcscheme_^#shared#^_ orderHint 0 - test9.xcscheme_^#shared#^_ + test2.xcscheme_^#shared#^_ orderHint - 1 + 0 SuppressBuildableAutocreation + D9268AC325CABBFD0074F122 + + primary + + D93B173A25CB709F0033E2CA primary diff --git a/docs/.buildinfo b/docs/.buildinfo index 06c1a52d..7c3e3352 100644 --- a/docs/.buildinfo +++ b/docs/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 705a259653000f25fcf3daf23870120c +config: d29caeabba5ae2612ea74144b7b495c4 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/.nojekyll b/docs/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/_images/exampleSurf.png b/docs/_images/exampleSurf.png new file mode 100644 index 00000000..73ccc3b8 Binary files /dev/null and b/docs/_images/exampleSurf.png differ diff --git a/docs/_images/exampleVec.png b/docs/_images/exampleVec.png new file mode 100644 index 00000000..73b474b7 Binary files /dev/null and b/docs/_images/exampleVec.png differ diff --git a/docs/_sources/api-c/class_view_hierarchy.rst.txt b/docs/_sources/api-c/class_view_hierarchy.rst.txt deleted file mode 100644 index ab8d880c..00000000 --- a/docs/_sources/api-c/class_view_hierarchy.rst.txt +++ /dev/null @@ -1,19 +0,0 @@ - -Class Hierarchy ---------------- - - -.. raw:: html - -
- - -.. end raw html for treeView - - diff --git a/docs/_sources/api-c/define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.rst.txt b/docs/_sources/api-c/define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.rst.txt deleted file mode 100644 index c138cbb8..00000000 --- a/docs/_sources/api-c/define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc: - -Define SPLINES_C_INTERFACE_H -============================ - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Define Documentation --------------------- - - -.. doxygendefine:: SPLINES_C_INTERFACE_H diff --git a/docs/_sources/api-c/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.rst.txt b/docs/_sources/api-c/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.rst.txt deleted file mode 100644 index 627f837b..00000000 --- a/docs/_sources/api-c/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.rst.txt +++ /dev/null @@ -1,16 +0,0 @@ -.. _dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src: - - -Directory src -============= - - -*Directory path:* ``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src`` - - -Files ------ - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - diff --git a/docs/_sources/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.rst.txt b/docs/_sources/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.rst.txt deleted file mode 100644 index 8c311132..00000000 --- a/docs/_sources/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.rst.txt +++ /dev/null @@ -1,37 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc: - -File SplinesCinterface.cc -========================= - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesCinterface.cc``) --------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.rst - - - -Detailed Description --------------------- - -| | This file contains the sources for the C interface to ``Splines`` - - - - - - - - diff --git a/docs/_sources/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.rst.txt b/docs/_sources/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.rst.txt deleted file mode 100644 index edca15cc..00000000 --- a/docs/_sources/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.rst.txt +++ /dev/null @@ -1,75 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h: - -File SplinesCinterface.h -======================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesCinterface.h``) -------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.rst - - - - - - - - - - -Functions ---------- - - -- :ref:`exhale_function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0` - -- :ref:`exhale_function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660` - -- :ref:`exhale_function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df` - -- :ref:`exhale_function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4` - -- :ref:`exhale_function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390` - -- :ref:`exhale_function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e` - -- :ref:`exhale_function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f` - -- :ref:`exhale_function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70` - -- :ref:`exhale_function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132` - -- :ref:`exhale_function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a` - -- :ref:`exhale_function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709` - -- :ref:`exhale_function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97` - -- :ref:`exhale_function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8` - -- :ref:`exhale_function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a` - -- :ref:`exhale_function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19` - -- :ref:`exhale_function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27` - - -Defines -------- - - -- :ref:`exhale_define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc` - diff --git a/docs/_sources/api-c/file_view_hierarchy.rst.txt b/docs/_sources/api-c/file_view_hierarchy.rst.txt deleted file mode 100644 index 400064b7..00000000 --- a/docs/_sources/api-c/file_view_hierarchy.rst.txt +++ /dev/null @@ -1,19 +0,0 @@ - -File Hierarchy --------------- - - -.. raw:: html - -
- - -.. end raw html for treeView - - diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19.rst.txt deleted file mode 100644 index d7865fb5..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19: - -Function SPLINE_push -==================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_push(double, double) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660.rst.txt deleted file mode 100644 index b5c0bd0c..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660: - -Function SPLINE_build2 -====================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_build2(double const *, double const *, int) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0.rst.txt deleted file mode 100644 index b5924781..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0: - -Function SPLINE_build -===================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_build() diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27.rst.txt deleted file mode 100644 index 933ef57a..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27: - -Function SPLINE_select -====================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_select(char const *) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390.rst.txt deleted file mode 100644 index d360458c..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390: - -Function SPLINE_eval_D -====================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_eval_D(double) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4.rst.txt deleted file mode 100644 index 9df31207..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4: - -Function SPLINE_eval -==================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_eval(double) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709.rst.txt deleted file mode 100644 index 2e10d111..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709: - -Function SPLINE_init -==================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_init() diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.rst.txt deleted file mode 100644 index 8ab2f1d6..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70: - -Function SPLINE_eval_DDDD -========================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_eval_DDDD(double) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f.rst.txt deleted file mode 100644 index cf2deac0..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f: - -Function SPLINE_eval_DDD -======================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_eval_DDD(double) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a.rst.txt deleted file mode 100644 index 3768e52e..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a: - -Function SPLINE_get_type_name -============================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_get_type_name() diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e.rst.txt deleted file mode 100644 index 703a0fdc..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e: - -Function SPLINE_eval_DD -======================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_eval_DD(double) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97.rst.txt deleted file mode 100644 index 034909b9..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97: - -Function SPLINE_mem_ptr -======================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_mem_ptr(char const *) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a.rst.txt deleted file mode 100644 index 0dac33b0..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a: - -Function SPLINE_print -===================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_print() diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132.rst.txt deleted file mode 100644 index 534ba321..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132: - -Function SPLINE_eval_DDDDD -========================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_eval_DDDDD(double) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8.rst.txt deleted file mode 100644 index 984eda09..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8: - -Function SPLINE_new -=================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_new(char const *, char const *) diff --git a/docs/_sources/api-c/function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df.rst.txt b/docs/_sources/api-c/function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df.rst.txt deleted file mode 100644 index 52675ded..00000000 --- a/docs/_sources/api-c/function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df: - -Function SPLINE_delete -====================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: SPLINE_delete(char const *) diff --git a/docs/_sources/api-c/library_root.rst.txt b/docs/_sources/api-c/library_root.rst.txt deleted file mode 100644 index cfb70ebd..00000000 --- a/docs/_sources/api-c/library_root.rst.txt +++ /dev/null @@ -1,74 +0,0 @@ - -C API -===== - -.. include:: class_view_hierarchy.rst - -.. include:: file_view_hierarchy.rst - -.. include:: unabridged_api.rst - - - -.. raw:: html - - diff --git a/docs/_sources/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.rst.txt b/docs/_sources/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.rst.txt deleted file mode 100644 index 2f53e4e8..00000000 --- a/docs/_sources/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.rst.txt +++ /dev/null @@ -1,256 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc: - -Program Listing for File SplinesCinterface.cc -============================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesCinterface.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - // - // file: SplineCinterface.cc - // - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - #include "Splines.hh" - #include "SplinesCinterface.h" - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace SplinesLoad; - #endif - - #include - #include - #include - #include - - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - extern "C" { - - typedef std::map MAP_SPLINE; - - static std::map spline_stored; - static Spline * head = nullptr; - - int - SPLINE_new( - char const * id, - char const * type - ) { - fmt::print( "SPLINE_new, id = {} type = {}\n", id, type ); - MAP_SPLINE::iterator it = spline_stored.find(id); - if ( it != spline_stored.end() ) delete it->second; - int ok = 0; - if ( strcmp( type, Splines::spline_type_1D[Splines::AKIMA_TYPE]) == 0 ) { - head = spline_stored[id] = new AkimaSpline; - } else if ( strcmp( type, Splines::spline_type_1D[Splines::BESSEL_TYPE]) == 0 ) { - head = spline_stored[id] = new BesselSpline; - } else if ( strcmp( type, Splines::spline_type_1D[Splines::PCHIP_TYPE]) == 0 ) { - head = spline_stored[id] = new PchipSpline; - } else if ( strcmp( type, Splines::spline_type_1D[Splines::CUBIC_TYPE] ) == 0 ) { - head = spline_stored[id] = new CubicSpline; - } else if ( strcmp( type, Splines::spline_type_1D[Splines::LINEAR_TYPE] ) == 0 ) { - head = spline_stored[id] = new LinearSpline; - } else if ( strcmp( type, Splines::spline_type_1D[Splines::CONSTANT_TYPE] ) == 0 ) { - head = spline_stored[id] = new ConstantSpline; - } else if ( strcmp( type, Splines::spline_type_1D[Splines::QUINTIC_TYPE]) == 0 ) { - head = spline_stored[id] = new QuinticSpline; - } else { - head = nullptr; - ok = -1; - } - return ok; - } - - int - SPLINE_select( char const * id ) { - MAP_SPLINE::iterator it = spline_stored.find(id); - if ( it != spline_stored.end() ) { - head = it->second; - } else { - return -1; // spline non trovata - } - return 0; - } - - int - SPLINE_delete( char const * id ) { - MAP_SPLINE::iterator it = spline_stored.find(id); - if ( it != spline_stored.end() ) { - delete it->second; - spline_stored.erase(it); - head = nullptr; - } else { - return -1; // spline non trovata - } - return 0; - } - - int - SPLINE_print() { - if ( head != nullptr ) { - head -> writeToStream( cout ); - return 0; - } else { - cout << "No Spline!\n"; - return -1; - } - } - - char const * - SPLINE_get_type_name() { - if ( head == nullptr ) return "NOTYPE - head = nullptr"; - return head -> type_name(); - } - - void * - SPLINE_mem_ptr( char const * id ) { - // check if exists ? - return static_cast(&spline_stored[id]); - } - - int - SPLINE_init() { - if ( head != nullptr ) { - head -> clear(); - return 0; - } else { - return -1; - } - } - - int - SPLINE_push( double x, double y ) { - if ( head != nullptr ) { - head -> pushBack(x,y); - return 0; - } else { - return -1; - } - } - - int - SPLINE_build() { - if ( head != nullptr ) { - head->build(); - return 0; - } else { - return -1; - } - } - - int - SPLINE_build2( - double const * x, - double const * y, - int n - ) { - if ( head != nullptr ) { - head -> build( x, y, n ); - return 0; - } else { - return -1; - } - } - - double - SPLINE_eval( double x ) { - if ( head != nullptr ) { - return head -> operator()(x); - } else { - return 0; - } - } - - double - SPLINE_eval_D( double x ) { - if ( head != nullptr ) { - return head -> D(x); - } else { - return 0; - } - } - - double - SPLINE_eval_DD( double x ) { - if ( head != nullptr ) { - return head -> DD(x); - } else { - return 0; - } - } - - double - SPLINE_eval_DDD( double x ) { - if ( head != nullptr ) { - return head -> DDD(x); - } else { - return 0; - } - } - - double - SPLINE_eval_DDDD( double x ) { - if ( head != nullptr ) { - return head -> DDDD(x); - } else { - return 0; - } - } - - double - SPLINE_eval_DDDDD( double x ) { - if ( head != nullptr ) { - return head -> DDDDD(x); - } else { - return 0; - } - } - - } - - #endif - - // - // eof: SplineCinterface.cc - // diff --git a/docs/_sources/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.rst.txt b/docs/_sources/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.rst.txt deleted file mode 100644 index e70aa863..00000000 --- a/docs/_sources/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.rst.txt +++ /dev/null @@ -1,97 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h: - -Program Listing for File SplinesCinterface.h -============================================ - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesCinterface.h``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | file: SplinesCinterface.h - */ - - /* @{ */ - #pragma once - - #ifndef SPLINES_C_INTERFACE_H - #define SPLINES_C_INTERFACE_H - - #ifdef __cplusplus - extern "C" { - #endif - - int - SPLINE_new( - char const * id, - char const * type - ); - - int SPLINE_select( char const * id ); - - int SPLINE_delete( char const * id ); - - int SPLINE_print(); - - char const * SPLINE_get_type_name(); - - void * SPLINE_mem_ptr( char const * id ); - - int SPLINE_init(); - - int SPLINE_push( double x, double y ); - - int SPLINE_build(); - - int - SPLINE_build2( - double const * x, - double const * y, - int n - ); - - double SPLINE_eval( double x ); - - double SPLINE_eval_D( double x ); - - double SPLINE_eval_DD( double x ); - - double SPLINE_eval_DDD( double x ); - - double SPLINE_eval_DDDD( double x ); - - double SPLINE_eval_DDDDD( double x ); - - #ifdef __cplusplus - } - #endif - - #endif - - /* @} */ - - /* - // eof: SplineCinterface.hh - */ diff --git a/docs/_sources/api-c/unabridged_api.rst.txt b/docs/_sources/api-c/unabridged_api.rst.txt deleted file mode 100644 index 535043b3..00000000 --- a/docs/_sources/api-c/unabridged_api.rst.txt +++ /dev/null @@ -1,96 +0,0 @@ - -Full API --------- - -Functions -********* - - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19.rst - -.. toctree:: - :maxdepth: 5 - - function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27.rst - -Defines -******* - - -.. toctree:: - :maxdepth: 5 - - define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.rst diff --git a/docs/_sources/api-c/unabridged_orphan.rst.txt b/docs/_sources/api-c/unabridged_orphan.rst.txt deleted file mode 100644 index 1ac65e02..00000000 --- a/docs/_sources/api-c/unabridged_orphan.rst.txt +++ /dev/null @@ -1,23 +0,0 @@ -:orphan: - - -Full API -======== - -Directories -*********** - - -.. toctree:: - :maxdepth: 5 - - dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.rst - -Files -***** - - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.rst diff --git a/docs/_sources/api-cpp/class_splines_1_1_akima2_dspline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_akima2_dspline.rst.txt deleted file mode 100644 index 9aaa7253..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_akima2_dspline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_akima2_dspline: - -Class Akima2Dspline -=================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::BiCubicSplineBase`` (:ref:`exhale_class_class_splines_1_1_bi_cubic_spline_base`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::Akima2Dspline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_akima_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_akima_spline.rst.txt deleted file mode 100644 index 7369651b..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_akima_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_akima_spline: - -Class AkimaSpline -================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::CubicSplineBase`` (:ref:`exhale_class_class_splines_1_1_cubic_spline_base`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::AkimaSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_bessel_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_bessel_spline.rst.txt deleted file mode 100644 index 538376e5..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_bessel_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_bessel_spline: - -Class BesselSpline -================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::CubicSplineBase`` (:ref:`exhale_class_class_splines_1_1_cubic_spline_base`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::BesselSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_bi_cubic_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_bi_cubic_spline.rst.txt deleted file mode 100644 index 29fcfc90..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_bi_cubic_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_bi_cubic_spline: - -Class BiCubicSpline -=================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::BiCubicSplineBase`` (:ref:`exhale_class_class_splines_1_1_bi_cubic_spline_base`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::BiCubicSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_bi_cubic_spline_base.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_bi_cubic_spline_base.rst.txt deleted file mode 100644 index 7c8264f7..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_bi_cubic_spline_base.rst.txt +++ /dev/null @@ -1,32 +0,0 @@ -.. _exhale_class_class_splines_1_1_bi_cubic_spline_base: - -Class BiCubicSplineBase -======================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::SplineSurf`` (:ref:`exhale_class_class_splines_1_1_spline_surf`) - - -Derived Types -************* - -- ``public Splines::Akima2Dspline`` (:ref:`exhale_class_class_splines_1_1_akima2_dspline`) -- ``public Splines::BiCubicSpline`` (:ref:`exhale_class_class_splines_1_1_bi_cubic_spline`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::BiCubicSplineBase - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_bi_quintic_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_bi_quintic_spline.rst.txt deleted file mode 100644 index 712d60de..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_bi_quintic_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_bi_quintic_spline: - -Class BiQuinticSpline -===================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::BiQuinticSplineBase`` (:ref:`exhale_class_class_splines_1_1_bi_quintic_spline_base`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::BiQuinticSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_bi_quintic_spline_base.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_bi_quintic_spline_base.rst.txt deleted file mode 100644 index 6f55c939..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_bi_quintic_spline_base.rst.txt +++ /dev/null @@ -1,31 +0,0 @@ -.. _exhale_class_class_splines_1_1_bi_quintic_spline_base: - -Class BiQuinticSplineBase -========================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::SplineSurf`` (:ref:`exhale_class_class_splines_1_1_spline_surf`) - - -Derived Type -************ - -- ``public Splines::BiQuinticSpline`` (:ref:`exhale_class_class_splines_1_1_bi_quintic_spline`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::BiQuinticSplineBase - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_bilinear_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_bilinear_spline.rst.txt deleted file mode 100644 index 7bb88b73..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_bilinear_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_bilinear_spline: - -Class BilinearSpline -==================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::SplineSurf`` (:ref:`exhale_class_class_splines_1_1_spline_surf`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::BilinearSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_constant_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_constant_spline.rst.txt deleted file mode 100644 index 4733a4b9..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_constant_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_constant_spline: - -Class ConstantSpline -==================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::Spline`` (:ref:`exhale_class_class_splines_1_1_spline`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::ConstantSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_cubic_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_cubic_spline.rst.txt deleted file mode 100644 index 4d57f36f..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_cubic_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_cubic_spline: - -Class CubicSpline -================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::CubicSplineBase`` (:ref:`exhale_class_class_splines_1_1_cubic_spline_base`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::CubicSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_cubic_spline_base.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_cubic_spline_base.rst.txt deleted file mode 100644 index 686aebce..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_cubic_spline_base.rst.txt +++ /dev/null @@ -1,35 +0,0 @@ -.. _exhale_class_class_splines_1_1_cubic_spline_base: - -Class CubicSplineBase -===================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::Spline`` (:ref:`exhale_class_class_splines_1_1_spline`) - - -Derived Types -************* - -- ``public Splines::AkimaSpline`` (:ref:`exhale_class_class_splines_1_1_akima_spline`) -- ``public Splines::BesselSpline`` (:ref:`exhale_class_class_splines_1_1_bessel_spline`) -- ``public Splines::CubicSpline`` (:ref:`exhale_class_class_splines_1_1_cubic_spline`) -- ``public Splines::HermiteSpline`` (:ref:`exhale_class_class_splines_1_1_hermite_spline`) -- ``public Splines::PchipSpline`` (:ref:`exhale_class_class_splines_1_1_pchip_spline`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::CubicSplineBase - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_hermite_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_hermite_spline.rst.txt deleted file mode 100644 index d819d667..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_hermite_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_hermite_spline: - -Class HermiteSpline -=================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::CubicSplineBase`` (:ref:`exhale_class_class_splines_1_1_cubic_spline_base`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::HermiteSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_linear_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_linear_spline.rst.txt deleted file mode 100644 index 685d9b4c..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_linear_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_linear_spline: - -Class LinearSpline -================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::Spline`` (:ref:`exhale_class_class_splines_1_1_spline`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::LinearSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_pchip_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_pchip_spline.rst.txt deleted file mode 100644 index f83f08a5..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_pchip_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_pchip_spline: - -Class PchipSpline -================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::CubicSplineBase`` (:ref:`exhale_class_class_splines_1_1_cubic_spline_base`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::PchipSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_quintic_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_quintic_spline.rst.txt deleted file mode 100644 index bd01fd32..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_quintic_spline.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_splines_1_1_quintic_spline: - -Class QuinticSpline -=================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::QuinticSplineBase`` (:ref:`exhale_class_class_splines_1_1_quintic_spline_base`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::QuinticSpline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_quintic_spline_base.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_quintic_spline_base.rst.txt deleted file mode 100644 index b09a065f..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_quintic_spline_base.rst.txt +++ /dev/null @@ -1,31 +0,0 @@ -.. _exhale_class_class_splines_1_1_quintic_spline_base: - -Class QuinticSplineBase -======================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public Splines::Spline`` (:ref:`exhale_class_class_splines_1_1_spline`) - - -Derived Type -************ - -- ``public Splines::QuinticSpline`` (:ref:`exhale_class_class_splines_1_1_quintic_spline`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::QuinticSplineBase - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_spline.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_spline.rst.txt deleted file mode 100644 index ded324ef..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_spline.rst.txt +++ /dev/null @@ -1,28 +0,0 @@ -.. _exhale_class_class_splines_1_1_spline: - -Class Spline -============ - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Inheritance Relationships -------------------------- - -Derived Types -************* - -- ``public Splines::ConstantSpline`` (:ref:`exhale_class_class_splines_1_1_constant_spline`) -- ``public Splines::CubicSplineBase`` (:ref:`exhale_class_class_splines_1_1_cubic_spline_base`) -- ``public Splines::LinearSpline`` (:ref:`exhale_class_class_splines_1_1_linear_spline`) -- ``public Splines::QuinticSplineBase`` (:ref:`exhale_class_class_splines_1_1_quintic_spline_base`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::Spline - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_spline1_d.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_spline1_d.rst.txt deleted file mode 100644 index fe55a596..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_spline1_d.rst.txt +++ /dev/null @@ -1,16 +0,0 @@ -.. _exhale_class_class_splines_1_1_spline1_d: - -Class Spline1D -============== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx` - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::Spline1D - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_spline2_d.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_spline2_d.rst.txt deleted file mode 100644 index 95bc23d2..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_spline2_d.rst.txt +++ /dev/null @@ -1,16 +0,0 @@ -.. _exhale_class_class_splines_1_1_spline2_d: - -Class Spline2D -============== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx` - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::Spline2D - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_spline_set.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_spline_set.rst.txt deleted file mode 100644 index 4dc2a766..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_spline_set.rst.txt +++ /dev/null @@ -1,26 +0,0 @@ -.. _exhale_class_class_splines_1_1_spline_set: - -Class SplineSet -=============== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx` - - -Nested Relationships --------------------- - - -Nested Types -************ - -- :ref:`exhale_class_class_splines_1_1_spline_set_1_1_binary_search` - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::SplineSet - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_spline_set_1_1_binary_search.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_spline_set_1_1_binary_search.rst.txt deleted file mode 100644 index 56383976..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_spline_set_1_1_binary_search.rst.txt +++ /dev/null @@ -1,22 +0,0 @@ -.. _exhale_class_class_splines_1_1_spline_set_1_1_binary_search: - -Class SplineSet::BinarySearch -============================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx` - - -Nested Relationships --------------------- - -This class is a nested type of :ref:`exhale_class_class_splines_1_1_spline_set`. - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::SplineSet::BinarySearch - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_spline_surf.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_spline_surf.rst.txt deleted file mode 100644 index fd221fbf..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_spline_surf.rst.txt +++ /dev/null @@ -1,27 +0,0 @@ -.. _exhale_class_class_splines_1_1_spline_surf: - -Class SplineSurf -================ - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Inheritance Relationships -------------------------- - -Derived Types -************* - -- ``public Splines::BiCubicSplineBase`` (:ref:`exhale_class_class_splines_1_1_bi_cubic_spline_base`) -- ``public Splines::BiQuinticSplineBase`` (:ref:`exhale_class_class_splines_1_1_bi_quintic_spline_base`) -- ``public Splines::BilinearSpline`` (:ref:`exhale_class_class_splines_1_1_bilinear_spline`) - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::SplineSurf - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_splines_1_1_spline_vec.rst.txt b/docs/_sources/api-cpp/class_splines_1_1_spline_vec.rst.txt deleted file mode 100644 index 6c639c0a..00000000 --- a/docs/_sources/api-cpp/class_splines_1_1_spline_vec.rst.txt +++ /dev/null @@ -1,16 +0,0 @@ -.. _exhale_class_class_splines_1_1_spline_vec: - -Class SplineVec -=============== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx` - - -Class Documentation -------------------- - - -.. doxygenclass:: Splines::SplineVec - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-cpp/class_view_hierarchy.rst.txt b/docs/_sources/api-cpp/class_view_hierarchy.rst.txt deleted file mode 100644 index 67bcbde4..00000000 --- a/docs/_sources/api-cpp/class_view_hierarchy.rst.txt +++ /dev/null @@ -1,19 +0,0 @@ - -Class Hierarchy ---------------- - - -.. raw:: html - -
- - -.. end raw html for treeView - - diff --git a/docs/_sources/api-cpp/define__splines_8hh_1a258c7c0530540979548721b55b2338c9.rst.txt b/docs/_sources/api-cpp/define__splines_8hh_1a258c7c0530540979548721b55b2338c9.rst.txt deleted file mode 100644 index c7370a04..00000000 --- a/docs/_sources/api-cpp/define__splines_8hh_1a258c7c0530540979548721b55b2338c9.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_define__splines_8hh_1a258c7c0530540979548721b55b2338c9: - -Define SPLINES_HH -================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Define Documentation --------------------- - - -.. doxygendefine:: SPLINES_HH diff --git a/docs/_sources/api-cpp/define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f.rst.txt b/docs/_sources/api-cpp/define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f.rst.txt deleted file mode 100644 index 13024222..00000000 --- a/docs/_sources/api-cpp/define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f: - -Define SPLINES_CONFIG_HH -======================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh` - - -Define Documentation --------------------- - - -.. doxygendefine:: SPLINES_CONFIG_HH diff --git a/docs/_sources/api-cpp/define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde.rst.txt b/docs/_sources/api-cpp/define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde.rst.txt deleted file mode 100644 index 70d53cf2..00000000 --- a/docs/_sources/api-cpp/define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde: - -Define SPLINES_UTILS_HH -======================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh` - - -Define Documentation --------------------- - - -.. doxygendefine:: SPLINES_UTILS_HH diff --git a/docs/_sources/api-cpp/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.rst.txt b/docs/_sources/api-cpp/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.rst.txt deleted file mode 100644 index a7e97f21..00000000 --- a/docs/_sources/api-cpp/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.rst.txt +++ /dev/null @@ -1,57 +0,0 @@ -.. _dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src: - - -Directory src -============= - - -*Directory path:* ``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src`` - - -Files ------ - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx` - - diff --git a/docs/_sources/api-cpp/enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe.rst.txt b/docs/_sources/api-cpp/enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe.rst.txt deleted file mode 100644 index cd8e76d5..00000000 --- a/docs/_sources/api-cpp/enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe: - -Enum REGION_ABCDEM -================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc` - - -Enum Documentation ------------------- - - -.. doxygenenum:: Splines::REGION_ABCDEM diff --git a/docs/_sources/api-cpp/enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed.rst.txt b/docs/_sources/api-cpp/enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed.rst.txt deleted file mode 100644 index f3147dc1..00000000 --- a/docs/_sources/api-cpp/enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed: - -Enum CUBIC_SPLINE_TYPE_BC -========================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx` - - -Enum Documentation ------------------- - - -.. doxygenenum:: Splines::CUBIC_SPLINE_TYPE_BC diff --git a/docs/_sources/api-cpp/enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7.rst.txt b/docs/_sources/api-cpp/enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7.rst.txt deleted file mode 100644 index 2f043d8c..00000000 --- a/docs/_sources/api-cpp/enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7: - -Enum SplineType2D -================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Enum Documentation ------------------- - - -.. doxygenenum:: Splines::SplineType2D diff --git a/docs/_sources/api-cpp/enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb.rst.txt b/docs/_sources/api-cpp/enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb.rst.txt deleted file mode 100644 index fce2c9ac..00000000 --- a/docs/_sources/api-cpp/enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb: - -Enum QUINTIC_SPLINE_TYPE -======================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx` - - -Enum Documentation ------------------- - - -.. doxygenenum:: Splines::QUINTIC_SPLINE_TYPE diff --git a/docs/_sources/api-cpp/enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df.rst.txt b/docs/_sources/api-cpp/enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df.rst.txt deleted file mode 100644 index 869d19f2..00000000 --- a/docs/_sources/api-cpp/enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df: - -Enum SplineType1D -================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Enum Documentation ------------------- - - -.. doxygenenum:: Splines::SplineType1D diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.rst.txt deleted file mode 100644 index 76a07b6e..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.rst.txt +++ /dev/null @@ -1,46 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc: - -File SplineAkima.cc -=================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima.cc``) --------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``cmath`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.rst.txt deleted file mode 100644 index 219e2eca..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx: - -File SplineAkima.hxx -==================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima.hxx``) ---------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_akima_spline` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.rst.txt deleted file mode 100644 index 6454b9fb..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.rst.txt +++ /dev/null @@ -1,48 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc: - -File SplineAkima2D.cc -===================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima2D.cc``) ----------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``cmath`` - -- ``iomanip`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.rst.txt deleted file mode 100644 index dfcc870a..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx: - -File SplineAkima2D.hxx -====================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima2D.hxx``) ------------------------------------------------------------------------------------------------------------------------ - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_akima2_dspline` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.rst.txt deleted file mode 100644 index c86bd600..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.rst.txt +++ /dev/null @@ -1,44 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc: - -File SplineBessel.cc -==================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBessel.cc``) ---------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.rst.txt deleted file mode 100644 index 867d3468..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx: - -File SplineBessel.hxx -===================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBessel.hxx``) ----------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_bessel_spline` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.rst.txt deleted file mode 100644 index e5a5421e..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.rst.txt +++ /dev/null @@ -1,48 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc: - -File SplineBiCubic.cc -===================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiCubic.cc``) ----------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``cmath`` - -- ``iomanip`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.rst.txt deleted file mode 100644 index 760d431d..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.rst.txt +++ /dev/null @@ -1,53 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx: - -File SplineBiCubic.hxx -====================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiCubic.hxx``) ------------------------------------------------------------------------------------------------------------------------ - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_bi_cubic_spline` - -- :ref:`exhale_class_class_splines_1_1_bi_cubic_spline_base` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.rst.txt deleted file mode 100644 index 23c02ff6..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.rst.txt +++ /dev/null @@ -1,48 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc: - -File SplineBiQuintic.cc -======================= - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiQuintic.cc``) ------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``cmath`` - -- ``iomanip`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.rst.txt deleted file mode 100644 index 1c38da18..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.rst.txt +++ /dev/null @@ -1,53 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx: - -File SplineBiQuintic.hxx -======================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiQuintic.hxx``) -------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_bi_quintic_spline` - -- :ref:`exhale_class_class_splines_1_1_bi_quintic_spline_base` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.rst.txt deleted file mode 100644 index 19e93a84..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.rst.txt +++ /dev/null @@ -1,48 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc: - -File SplineBilinear.cc -====================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBilinear.cc``) ------------------------------------------------------------------------------------------------------------------------ - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``cmath`` - -- ``iomanip`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.rst.txt deleted file mode 100644 index 78f484b9..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx: - -File SplineBilinear.hxx -======================= - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBilinear.hxx``) ------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_bilinear_spline` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.rst.txt deleted file mode 100644 index c3c64628..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.rst.txt +++ /dev/null @@ -1,46 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc: - -File SplineConstant.cc -====================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineConstant.cc``) ------------------------------------------------------------------------------------------------------------------------ - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``iomanip`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.rst.txt deleted file mode 100644 index f6d5557e..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx: - -File SplineConstant.hxx -======================= - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineConstant.hxx``) ------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_constant_spline` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.rst.txt deleted file mode 100644 index 298d3205..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.rst.txt +++ /dev/null @@ -1,44 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc: - -File SplineCubic.cc -=================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubic.cc``) --------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.rst.txt deleted file mode 100644 index 997c4f0a..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.rst.txt +++ /dev/null @@ -1,58 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx: - -File SplineCubic.hxx -==================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubic.hxx``) ---------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_cubic_spline` - - -Enums ------ - - -- :ref:`exhale_enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.rst.txt deleted file mode 100644 index 8ef86a01..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.rst.txt +++ /dev/null @@ -1,46 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc: - -File SplineCubicBase.cc -======================= - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubicBase.cc``) ------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``iomanip`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.rst.txt deleted file mode 100644 index 53604df3..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.rst.txt +++ /dev/null @@ -1,44 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc: - -File SplineHermite.cc -===================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineHermite.cc``) ----------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.rst.txt deleted file mode 100644 index 6b9a830d..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx: - -File SplineHermite.hxx -====================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineHermite.hxx``) ------------------------------------------------------------------------------------------------------------------------ - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_hermite_spline` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.rst.txt deleted file mode 100644 index 4a30b857..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.rst.txt +++ /dev/null @@ -1,46 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc: - -File SplineLinear.cc -==================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineLinear.cc``) ---------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``iomanip`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.rst.txt deleted file mode 100644 index ebd816b8..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx: - -File SplineLinear.hxx -===================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineLinear.hxx``) ----------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_linear_spline` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.rst.txt deleted file mode 100644 index f14eb593..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.rst.txt +++ /dev/null @@ -1,72 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc: - -File SplinePchip.cc -=================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinePchip.cc``) --------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``SplinesUtils.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh`) - -- ``cmath`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Enums ------ - - -- :ref:`exhale_enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe` - - -Functions ---------- - - -- :ref:`exhale_function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549` - -- :ref:`exhale_function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4` - -- :ref:`exhale_function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2` - -- :ref:`exhale_function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d` - -- :ref:`exhale_function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca` - -- :ref:`exhale_function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.rst.txt deleted file mode 100644 index d0816aa7..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx: - -File SplinePchip.hxx -==================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinePchip.hxx``) ---------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_pchip_spline` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.rst.txt deleted file mode 100644 index a8f0efe9..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.rst.txt +++ /dev/null @@ -1,48 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc: - -File SplineQuintic.cc -===================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuintic.cc``) ----------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``SplinesUtils.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh`) - -- ``cmath`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.rst.txt deleted file mode 100644 index bae72b28..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.rst.txt +++ /dev/null @@ -1,58 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx: - -File SplineQuintic.hxx -====================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuintic.hxx``) ------------------------------------------------------------------------------------------------------------------------ - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_quintic_spline` - - -Enums ------ - - -- :ref:`exhale_enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.rst.txt deleted file mode 100644 index 760087ec..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.rst.txt +++ /dev/null @@ -1,46 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc: - -File SplineQuinticBase.cc -========================= - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuinticBase.cc``) --------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``iomanip`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.rst.txt deleted file mode 100644 index 669713c0..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx: - -File SplineQuinticBase.hxx -========================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuinticBase.hxx``) ---------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_quintic_spline_base` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.rst.txt deleted file mode 100644 index 0d8a8c05..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.rst.txt +++ /dev/null @@ -1,52 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc: - -File SplineSet.cc -================= - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSet.cc``) ------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.rst - - - - - -Includes --------- - - -- ``PolynomialRoots.hh`` - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``SplinesUtils.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh`) - -- ``cmath`` - -- ``limits`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.rst.txt deleted file mode 100644 index 9c4bac5f..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.rst.txt +++ /dev/null @@ -1,53 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx: - -File SplineSet.hxx -================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSet.hxx``) -------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_spline_set` - -- :ref:`exhale_class_class_splines_1_1_spline_set_1_1_binary_search` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.rst.txt deleted file mode 100644 index 641ba92a..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.rst.txt +++ /dev/null @@ -1,48 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc: - -File SplineSetGC.cc -=================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSetGC.cc``) --------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``cmath`` - -- ``limits`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.rst.txt deleted file mode 100644 index 90150097..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.rst.txt +++ /dev/null @@ -1,48 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc: - -File SplineVec.cc -================= - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineVec.cc``) ------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``cmath`` - -- ``limits`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.rst.txt deleted file mode 100644 index bb4e0f36..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx: - -File SplineVec.hxx -================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineVec.hxx``) -------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_spline_vec` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.rst.txt deleted file mode 100644 index b239aa7b..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.rst.txt +++ /dev/null @@ -1,74 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc: - -File Splines.cc -=============== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines.cc``) ----------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.rst - - - - - -Includes --------- - - -- ``SplinesUtils.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh`) - -- ``cmath`` - -- ``limits`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Functions ---------- - - -- :ref:`exhale_function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9` - -- :ref:`exhale_function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016` - -- :ref:`exhale_function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2` - -- :ref:`exhale_function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41` - -- :ref:`exhale_function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e` - -- :ref:`exhale_function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00` - -- :ref:`exhale_function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7` - - -Variables ---------- - - -- :ref:`exhale_variable_namespace_splines_1a052166b362a237026fef2fff7e415070` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.rst.txt deleted file mode 100644 index f6be726a..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.rst.txt +++ /dev/null @@ -1,177 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh: - -File Splines.hh -=============== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines.hh``) ----------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.rst - - - - - -Includes --------- - - -- ``SplineAkima.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx`) - -- ``SplineAkima2D.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx`) - -- ``SplineBessel.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx`) - -- ``SplineBiCubic.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx`) - -- ``SplineBiQuintic.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx`) - -- ``SplineBilinear.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx`) - -- ``SplineConstant.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx`) - -- ``SplineCubic.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx`) - -- ``SplineHermite.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx`) - -- ``SplineLinear.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx`) - -- ``SplinePchip.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx`) - -- ``SplineQuintic.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx`) - -- ``SplineQuinticBase.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx`) - -- ``SplineSet.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx`) - -- ``SplineVec.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx`) - -- ``Splines1D.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx`) - -- ``Splines2D.hxx`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx`) - -- ``SplinesConfig.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh`) - -- ``fstream`` - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_cubic_spline_base` - -- :ref:`exhale_class_class_splines_1_1_spline` - -- :ref:`exhale_class_class_splines_1_1_spline_surf` - - -Enums ------ - - -- :ref:`exhale_enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df` - -- :ref:`exhale_enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7` - - -Functions ---------- - - -- :ref:`exhale_function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03` - -- :ref:`exhale_function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c` - -- :ref:`exhale_function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2` - -- :ref:`exhale_function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f` - - -Defines -------- - - -- :ref:`exhale_define__splines_8hh_1a258c7c0530540979548721b55b2338c9` - - -Typedefs --------- - - -- :ref:`exhale_typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1` - -- :ref:`exhale_typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f` - -- :ref:`exhale_typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.rst.txt deleted file mode 100644 index 68aa2051..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc: - -File Splines1D.cc -================= - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines1D.cc``) ------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Functions ---------- - - -- :ref:`exhale_function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.rst.txt deleted file mode 100644 index 3ef94189..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx: - -File Splines1D.hxx -================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines1D.hxx``) -------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_spline1_d` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.rst.txt deleted file mode 100644 index 3ff92d70..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.rst.txt +++ /dev/null @@ -1,44 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc: - -File Splines2D.cc -================= - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines2D.cc``) ------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.rst.txt deleted file mode 100644 index 03f3485b..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx: - -File Splines2D.hxx -================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines2D.hxx``) -------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.rst - - - - - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_spline2_d` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.rst.txt deleted file mode 100644 index dfb1ab43..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.rst.txt +++ /dev/null @@ -1,48 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc: - -File SplinesBivariate.cc -======================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesBivariate.cc``) -------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - -- ``cmath`` - -- ``iomanip`` - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.rst.txt deleted file mode 100644 index c4953f17..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.rst.txt +++ /dev/null @@ -1,52 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh: - -File SplinesConfig.hh -===================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesConfig.hh``) ----------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.rst - - - - - -Includes --------- - - -- ``GenericContainer.hh`` - -- ``Utils.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh`) - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - - - -Defines -------- - - -- :ref:`exhale_define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.rst.txt deleted file mode 100644 index ca5d9726..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.rst.txt +++ /dev/null @@ -1,44 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc: - -File SplinesUtils.cc -==================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesUtils.cc``) ---------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.rst - - - - - -Includes --------- - - -- ``SplinesUtils.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh`) - - - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - diff --git a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.rst.txt b/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.rst.txt deleted file mode 100644 index d49e88a4..00000000 --- a/docs/_sources/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.rst.txt +++ /dev/null @@ -1,65 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh: - -File SplinesUtils.hh -==================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesUtils.hh``) ---------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.rst - - - - - -Includes --------- - - -- ``Splines.hh`` (:ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh`) - - - -Included By ------------ - - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc` - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc` - - - - -Namespaces ----------- - - -- :ref:`namespace_Splines` - - -Defines -------- - - -- :ref:`exhale_define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde` - diff --git a/docs/_sources/api-cpp/file_view_hierarchy.rst.txt b/docs/_sources/api-cpp/file_view_hierarchy.rst.txt deleted file mode 100644 index 7e61c684..00000000 --- a/docs/_sources/api-cpp/file_view_hierarchy.rst.txt +++ /dev/null @@ -1,19 +0,0 @@ - -File Hierarchy --------------- - - -.. raw:: html - -
- - -.. end raw html for treeView - - diff --git a/docs/_sources/api-cpp/function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca.rst.txt deleted file mode 100644 index f435bc5e..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca: - -Function Splines::Pchip_build_new -================================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::Pchip_build_new(real_type const *, real_type const *, real_type *, integer) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9.rst.txt deleted file mode 100644 index 223b247e..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9: - -Function Splines::centripetal -============================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::centripetal(integer, integer, real_type const *, integer, real_type, real_type *) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016.rst.txt deleted file mode 100644 index 839f6886..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016: - -Function Splines::checkCubicSplineMonotonicity -============================================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::checkCubicSplineMonotonicity(real_type const *, real_type const *, real_type const *, integer) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02.rst.txt deleted file mode 100644 index 95315d07..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02: - -Function Splines::signTest -========================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::signTest(real_type const, real_type const) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00.rst.txt deleted file mode 100644 index b7d6393f..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00: - -Function Splines::curvature_DD -============================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::curvature_DD(real_type, Spline const&, Spline const&) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549.rst.txt deleted file mode 100644 index 12fe3985..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549: - -Function Splines::get_region -============================ - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::get_region(real_type, real_type) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04.rst.txt deleted file mode 100644 index 3910c573..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04: - -Function Splines::new_Spline1D -============================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::new_Spline1D(string const&, SplineType1D) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7.rst.txt deleted file mode 100644 index be008115..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7: - -Function Splines::uniform -========================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::uniform(integer, integer, real_type const *, integer, real_type *) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f.rst.txt deleted file mode 100644 index b862fa25..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f: - -Function Splines::universal -=========================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::universal(integer, integer, real_type const *, integer, real_type *) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41.rst.txt deleted file mode 100644 index 56f350a2..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41: - -Function Splines::curvature -=========================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::curvature(real_type, Spline const&, Spline const&) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2.rst.txt deleted file mode 100644 index 5d62b07f..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2: - -Function Splines::min_abs -========================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::min_abs(real_type, real_type) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2.rst.txt deleted file mode 100644 index 7f7d4515..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2: - -Function Splines::FoleyNielsen -============================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::FoleyNielsen(integer, integer, real_type const *, integer, real_type *) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e.rst.txt deleted file mode 100644 index fef1bcb7..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e: - -Function Splines::curvature_D -============================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::curvature_D(real_type, Spline const&, Spline const&) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4.rst.txt deleted file mode 100644 index bd94bfaf..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4: - -Function Splines::max_abs -========================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::max_abs(real_type, real_type) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03.rst.txt deleted file mode 100644 index 352cf179..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03: - -Function Splines::backtrace -=========================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::backtrace(ostream_type&) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c.rst.txt deleted file mode 100644 index 3c086d6f..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c: - -Function Splines::FangHung -========================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::FangHung(integer, integer, real_type const *, integer, real_type *) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2.rst.txt deleted file mode 100644 index 347abfe1..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2: - -Function Splines::chordal -========================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::chordal(integer, integer, real_type const *, integer, real_type *) diff --git a/docs/_sources/api-cpp/function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d.rst.txt b/docs/_sources/api-cpp/function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d.rst.txt deleted file mode 100644 index 972d1d8a..00000000 --- a/docs/_sources/api-cpp/function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d: - -Function Splines::Pchip_build -============================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc` - - -Function Documentation ----------------------- - - -.. doxygenfunction:: Splines::Pchip_build(real_type const *, real_type const *, real_type *, integer) diff --git a/docs/_sources/api-cpp/library_root.rst.txt b/docs/_sources/api-cpp/library_root.rst.txt deleted file mode 100644 index 8ccfdc96..00000000 --- a/docs/_sources/api-cpp/library_root.rst.txt +++ /dev/null @@ -1,74 +0,0 @@ - -C++ API -======= - -.. include:: class_view_hierarchy.rst - -.. include:: file_view_hierarchy.rst - -.. include:: unabridged_api.rst - - - -.. raw:: html - - diff --git a/docs/_sources/api-cpp/namespace_Splines.rst.txt b/docs/_sources/api-cpp/namespace_Splines.rst.txt deleted file mode 100644 index f4f3e0d4..00000000 --- a/docs/_sources/api-cpp/namespace_Splines.rst.txt +++ /dev/null @@ -1,138 +0,0 @@ - -.. _namespace_Splines: - -Namespace Splines -================= - - -.. contents:: Contents - :local: - :backlinks: none - - - - - -Classes -------- - - -- :ref:`exhale_class_class_splines_1_1_akima2_dspline` - -- :ref:`exhale_class_class_splines_1_1_akima_spline` - -- :ref:`exhale_class_class_splines_1_1_bessel_spline` - -- :ref:`exhale_class_class_splines_1_1_bi_cubic_spline` - -- :ref:`exhale_class_class_splines_1_1_bi_cubic_spline_base` - -- :ref:`exhale_class_class_splines_1_1_bilinear_spline` - -- :ref:`exhale_class_class_splines_1_1_bi_quintic_spline` - -- :ref:`exhale_class_class_splines_1_1_bi_quintic_spline_base` - -- :ref:`exhale_class_class_splines_1_1_constant_spline` - -- :ref:`exhale_class_class_splines_1_1_cubic_spline` - -- :ref:`exhale_class_class_splines_1_1_cubic_spline_base` - -- :ref:`exhale_class_class_splines_1_1_hermite_spline` - -- :ref:`exhale_class_class_splines_1_1_linear_spline` - -- :ref:`exhale_class_class_splines_1_1_pchip_spline` - -- :ref:`exhale_class_class_splines_1_1_quintic_spline` - -- :ref:`exhale_class_class_splines_1_1_quintic_spline_base` - -- :ref:`exhale_class_class_splines_1_1_spline` - -- :ref:`exhale_class_class_splines_1_1_spline1_d` - -- :ref:`exhale_class_class_splines_1_1_spline2_d` - -- :ref:`exhale_class_class_splines_1_1_spline_set` - -- :ref:`exhale_class_class_splines_1_1_spline_set_1_1_binary_search` - -- :ref:`exhale_class_class_splines_1_1_spline_surf` - -- :ref:`exhale_class_class_splines_1_1_spline_vec` - - -Enums ------ - - -- :ref:`exhale_enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed` - -- :ref:`exhale_enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb` - -- :ref:`exhale_enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe` - -- :ref:`exhale_enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df` - -- :ref:`exhale_enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7` - - -Functions ---------- - - -- :ref:`exhale_function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03` - -- :ref:`exhale_function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9` - -- :ref:`exhale_function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016` - -- :ref:`exhale_function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2` - -- :ref:`exhale_function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41` - -- :ref:`exhale_function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e` - -- :ref:`exhale_function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00` - -- :ref:`exhale_function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c` - -- :ref:`exhale_function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2` - -- :ref:`exhale_function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549` - -- :ref:`exhale_function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4` - -- :ref:`exhale_function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2` - -- :ref:`exhale_function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04` - -- :ref:`exhale_function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d` - -- :ref:`exhale_function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca` - -- :ref:`exhale_function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02` - -- :ref:`exhale_function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7` - -- :ref:`exhale_function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f` - - -Typedefs --------- - - -- :ref:`exhale_typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1` - -- :ref:`exhale_typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f` - -- :ref:`exhale_typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a` - - -Variables ---------- - - -- :ref:`exhale_variable_namespace_splines_1a052166b362a237026fef2fff7e415070` diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.rst.txt deleted file mode 100644 index 747dee8d..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.rst.txt +++ /dev/null @@ -1,177 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc: - -Program Listing for File SplineAkima.cc -======================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - - /*\ - | # - | # # # # # # # ## - | # # # # # ## ## # # - | # # #### # # ## # # # - | ####### # # # # # ###### - | # # # # # # # # # - | # # # # # # # # # - \*/ - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - real_type - akima_one( - real_type epsi, - real_type di_m2, - real_type di_m1, - real_type di, - real_type di_p1 - ) { - real_type wl = std::abs(di_p1 - di); - real_type wr = std::abs(di_m1 - di_m2); - real_type den = wl + wr; - if ( den <= epsi ) { wl = wr = 0.5; den = 1; } // if epsi == 0 - real_type num = wl * di_m1 + wr * di; - return num / den; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Akima_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts - ) { - - if ( npts == 2 ) { // solo 2 punti, niente da fare - Yp[0] = Yp[1] = (Y[1]-Y[0])/(X[1]-X[0]); - } else { - Utils::Malloc mem("Akima_build"); - real_type * m = mem.malloc( size_t(npts+3) ); - - // calcolo slopes (npts-1) intervals + 4 - for ( size_t i = 1; i < size_t(npts); ++i ) - m[i+1] = (Y[i]-Y[i-1])/(X[i]-X[i-1]); - - // extra slope at the boundary - m[1] = 2*m[2]-m[3]; - m[0] = 2*m[1]-m[2]; - m[size_t(npts+1)] = 2*m[size_t(npts)]-m[size_t(npts-1)]; - m[size_t(npts+2)] = 2*m[size_t(npts+1)]-m[size_t(npts)]; - - // minimum delta slope - real_type epsi = 0; - for ( size_t i = 0; i < size_t(npts+2); ++i ) { - real_type dm = std::abs(m[i+1]-m[i]); - if ( dm > epsi ) epsi = dm; - } - epsi *= 1E-8; - - // 0 1 2 3 4---- n-1 n n+1 n+2 - // + + + + + - for ( size_t i = 0; i < size_t(npts); ++i ) - Yp[i] = akima_one( epsi, m[i], m[i+1], m[i+2], m[i+3] ); - } - } - - #endif - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - AkimaSpline::build() { - string msg = fmt::format("AkimaSpline[{}]::build():", m_name ); - UTILS_ASSERT( - m_npts > 1, "{} npts = {} not enought points\n", msg, m_npts - ); - Utils::checkNaN( m_X, (msg+" X ").c_str(), m_npts, __LINE__, __FILE__ ); - Utils::checkNaN( m_Y, (msg+" Y ").c_str(), m_npts, __LINE__, __FILE__ ); - integer ibegin = 0; - integer iend = 0; - do { - // cerca intervallo monotono strettamente crescente - while ( ++iend < m_npts && m_X[iend-1] < m_X[iend] ) {} - Akima_build( m_X+ibegin, m_Y+ibegin, m_Yp+ibegin, iend-ibegin ); - ibegin = iend; - } while ( iend < m_npts ); - - Utils::checkNaN( m_Yp, (msg+" Yp").c_str(), m_npts, __LINE__, __FILE__ ); - } - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - #endif - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - AkimaSpline::setup( GenericContainer const & gc ) { - /* - // gc["xdata"] - // gc["ydata"] - // - */ - string msg = fmt::format("AkimaSpline[{}]::setup():", m_name ); - UTILS_ASSERT( gc.exists("xdata"), "{} missing `xdata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ydata"), "{} missing `ydata` field!\n", msg ); - - GenericContainer const & gc_x = gc("xdata"); - GenericContainer const & gc_y = gc("ydata"); - - vec_real_type x, y; - { - std::string ff = fmt::format( "{}, field `xdata'", msg ); - gc_x.copyto_vec_real( x, ff.c_str() ); - } - { - std::string ff = fmt::format( "{}, field `ydata'", msg ); - gc_y.copyto_vec_real( y, ff.c_str() ); - } - this->build( x, y ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.rst.txt deleted file mode 100644 index 358971d1..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.rst.txt +++ /dev/null @@ -1,80 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx: - -Program Listing for File SplineAkima.hxx -======================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | _ _ _ ____ _ _ - | / \ | | _(_)_ __ ___ __ _ / ___| _ __ | (_)_ __ ___ - | / _ \ | |/ / | '_ ` _ \ / _` | \___ \| '_ \| | | '_ \ / _ \ - | / ___ \| <| | | | | | | (_| | ___) | |_) | | | | | | __/ - | /_/ \_\_|\_\_|_| |_| |_|\__,_| |____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - - namespace Splines { - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - void - Akima_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts - ); - - #endif - - class AkimaSpline : public CubicSplineBase { - public: - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using CubicSplineBase::reserve; - using CubicSplineBase::build; - #endif - - AkimaSpline( string const & name = "AkimaSpline" ) - : CubicSplineBase( name ) - {} - - ~AkimaSpline() override {} - - unsigned type() const override { return AKIMA_TYPE; } - - // --------------------------- VIRTUALS ----------------------------------- - - void build() override; - void setup( GenericContainer const & gc ) override; - - }; - - } - - // EOF: SplineAkima.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.rst.txt deleted file mode 100644 index 615b410d..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.rst.txt +++ /dev/null @@ -1,427 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc: - -Program Listing for File SplineAkima2D.cc -========================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima2D.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - #include - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - // Statement Function definitions - inline - real_type - Extrapolate2( - real_type X1, - real_type X2, - real_type Z0, - real_type Z1 - ) { - return (Z1-Z0)*X2/X1 + Z0; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - inline - real_type - Extrapolate3( - real_type X1, - real_type X2, - real_type X3, - real_type Z0, - real_type Z1, - real_type Z2 - ) { - return ( (Z2-Z0) * (X3-X1)/X2 - (Z1-Z0) * (X3-X2)/X1 ) * (X3/(X2-X1)) + Z0; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - void - estimate( - real_type z0, - real_type z1, - real_type z2, - real_type z3, - real_type x1, - real_type x2, - real_type x3, - real_type & c1, - real_type & c2, - real_type & c3, - real_type & SX, - real_type & SXX, - real_type & b0, - real_type & b1, - real_type RF[2], - real_type RI[2] - ) { - - // Primary estimate of partial derivative zx - // as the coefficient of the bicubic polynomial. - c1 = x2*x3/((x1-x2)*(x1-x3)); - c2 = x3*x1/((x2-x3)*(x2-x1)); - c3 = x1*x2/((x3-x1)*(x3-x2)); - real_type primary_estimate = c1*(z1-z0)/x1 + c2*(z2-z0)/x2 + c3*(z3-z0)/x3; - - // Volatility factor and distance factor in the x direction - // for the primary estimate of zx. - SX = x1 + x2 + x3; - real_type SZ = z0 + z1 + z2 + z3; - SXX = x1*x1 + x2*x2 + x3*x3; - real_type SXZ = x1*z1 + z2*z2 + x3*z3; - real_type DNM = 4.0*SXX - SX*SX; - b0 = (SXX*SZ-SX*SXZ)/DNM; - b1 = (4.0*SXZ-SX*SZ)/DNM; - real_type dz0 = z0 - b0; - real_type dz1 = z1 - (b0+b1*x1); - real_type dz2 = z2 - (b0+b1*x2); - real_type dz3 = z3 - (b0+b1*x3); - real_type volatility_factor = dz0*dz0 + dz1*dz1 + dz2*dz2 + dz3*dz3; - // epsi value used to decide whether or not - // the volatility factor is essentially zero. - real_type epsi = (z0*z0+z1*z1+z2*z2+z3*z3)*1.0E-12; - // Accumulates the weighted primary estimates and their weights. - if ( volatility_factor > epsi ) { // finite weight. - real_type WT = 1.0/ (volatility_factor*SXX); - RF[1] += WT*primary_estimate; - RF[0] += WT; - } else { // infinite weight. - RI[1] += primary_estimate; - RI[0] += 1.0; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // 0 1 2 3 (4) 5 6 7 8 - static - void - AkimaSmooth( - real_type const X[9], integer imin, integer imax, - real_type const Y[9], integer jmin, integer jmax, - real_type const Z[9][9], - real_type & DX, - real_type & DY, - real_type & DXY - ) { - - integer stencil[3][4] = { - { -3, -2, -1, 1 }, - { -2, -1, 1, 2 }, - { -1, 1, 2, 3 } - }; - - real_type by0[4], by1[4], CY1A[4], CY2A[4], CY3A[4], SYA[4], SYYA[4]; - - real_type X0 = X[4]; - real_type Y0 = Y[4]; - real_type Z00 = Z[4][4]; - - // Initial setting - real_type DXF[2] = {0,0}; - real_type DXI[2] = {0,0}; - real_type DYF[2] = {0,0}; - real_type DYI[2] = {0,0}; - real_type DXYF[2] = {0,0}; - real_type DXYI[2] = {0,0}; - - for ( integer k = 0; k < 4; ++k ) { - int j1 = 4 + stencil[0][k]; - int j2 = 4 + stencil[1][k]; - int j3 = 4 + stencil[2][k]; - if ( j1 >= int(jmin) && j3 <= int(jmax) ) - estimate( - Z00, Z[4][j1], Z[4][j2], Z[4][j3], - Y[j1] - Y0, Y[j2] - Y0, Y[j3] - Y0, - CY1A[k], CY2A[k], CY3A[k], SYA[k], SYYA[k], - by0[k], by1[k], DYF, DYI - ); - } - - for ( integer kx = 0; kx < 4; ++kx ) { - int i1 = 4 + stencil[0][kx]; - int i2 = 4 + stencil[1][kx]; - int i3 = 4 + stencil[2][kx]; - - if ( i1 < int(imin) || i3 > int(imax) ) continue; - - real_type X1 = X[i1] - X0; - real_type X2 = X[i2] - X0; - real_type X3 = X[i3] - X0; - real_type Z10 = Z[i1][4]; - real_type Z20 = Z[i2][4]; - real_type Z30 = Z[i3][4]; - real_type CX1, CX2, CX3, SX, SXX, B00X, B10; - estimate( - Z00, Z10, Z20, Z30, - X1, X2, X3, - CX1, CX2, CX3, - SX, SXX, - B00X, B10, DXF, DXI - ); - - for ( int ky = 0; ky < 4; ++ky ) { - int j1 = 4 + stencil[0][ky]; - int j2 = 4 + stencil[1][ky]; - int j3 = 4 + stencil[2][ky]; - if ( j1 < int(jmin) || j3 > int(jmax) ) continue; - - real_type Y1 = Y[j1] - Y0; - real_type Y2 = Y[j2] - Y0; - real_type Y3 = Y[j3] - Y0; - real_type CY1 = CY1A[ky]; - real_type CY2 = CY2A[ky]; - real_type CY3 = CY3A[ky]; - real_type SY = SYA[ky]; - real_type SYY = SYYA[ky]; - real_type B00Y = by0[ky]; - real_type B01 = by1[ky]; - - real_type Z01 = Z[4][j1], Z02 = Z[4][j2], Z03 = Z[4][j3]; - real_type Z11 = Z[i1][j1], Z12 = Z[i1][j2], Z13 = Z[i1][j3]; - real_type Z21 = Z[i2][j1], Z22 = Z[i2][j2], Z23 = Z[i2][j3]; - real_type Z31 = Z[i3][j1], Z32 = Z[i3][j2], Z33 = Z[i3][j3]; - - // Primary estimate of partial derivative zxy - // as the coefficient of the bicubic polynomial. - real_type DZXY11 = (Z11-Z10-Z01+Z00)/(X1*Y1); - real_type DZXY12 = (Z12-Z10-Z02+Z00)/(X1*Y2); - real_type DZXY13 = (Z13-Z10-Z03+Z00)/(X1*Y3); - real_type DZXY21 = (Z21-Z20-Z01+Z00)/(X2*Y1); - real_type DZXY22 = (Z22-Z20-Z02+Z00)/(X2*Y2); - real_type DZXY23 = (Z23-Z20-Z03+Z00)/(X2*Y3); - real_type DZXY31 = (Z31-Z30-Z01+Z00)/(X3*Y1); - real_type DZXY32 = (Z32-Z30-Z02+Z00)/(X3*Y2); - real_type DZXY33 = (Z33-Z30-Z03+Z00)/(X3*Y3); - real_type PEZXY = CX1* (CY1*DZXY11+CY2*DZXY12+CY3*DZXY13) + - CX2* (CY1*DZXY21+CY2*DZXY22+CY3*DZXY23) + - CX3* (CY1*DZXY31+CY2*DZXY32+CY3*DZXY33); - // Volatility factor and distance factor - // in the x and y directions for the primary estimate of zxy. - real_type B00 = (B00X+B00Y)/2.0; - real_type SXY = SX*SY; - real_type SXXY = SXX*SY; - real_type SXYY = SX*SYY; - real_type SXXYY = SXX*SYY; - real_type SXYZ = X1 * (Y1*Z11+Y2*Z12+Y3*Z13) + - X2 * (Y1*Z21+Y2*Z22+Y3*Z23) + - X3 * (Y1*Z31+Y2*Z32+Y3*Z33); - real_type B11 = (SXYZ-B00*SXY-B10*SXXY-B01*SXYY)/SXXYY; - real_type DZ00 = Z00 - B00; - real_type DZ01 = Z01 - (B00+B01*Y1); - real_type DZ02 = Z02 - (B00+B01*Y2); - real_type DZ03 = Z03 - (B00+B01*Y3); - real_type DZ10 = Z10 - (B00+B10*X1); - real_type DZ11 = Z11 - (B00+B01*Y1+X1*(B10+B11*Y1)); - real_type DZ12 = Z12 - (B00+B01*Y2+X1*(B10+B11*Y2)); - real_type DZ13 = Z13 - (B00+B01*Y3+X1*(B10+B11*Y3)); - real_type DZ20 = Z20 - (B00+B10*X2); - real_type DZ21 = Z21 - (B00+B01*Y1+X2*(B10+B11*Y1)); - real_type DZ22 = Z22 - (B00+B01*Y2+X2*(B10+B11*Y2)); - real_type DZ23 = Z23 - (B00+B01*Y3+X2*(B10+B11*Y3)); - real_type DZ30 = Z30 - (B00+B10*X3); - real_type DZ31 = Z31 - (B00+B01*Y1+X3*(B10+B11*Y1)); - real_type DZ32 = Z32 - (B00+B01*Y2+X3*(B10+B11*Y2)); - real_type DZ33 = Z33 - (B00+B01*Y3+X3*(B10+B11*Y3)); - real_type volatility_factor = DZ00*DZ00 + DZ01*DZ01 + - DZ02*DZ02 + DZ03*DZ03 + - DZ10*DZ10 + DZ11*DZ11 + - DZ12*DZ12 + DZ13*DZ13 + - DZ20*DZ20 + DZ21*DZ21 + - DZ22*DZ22 + DZ23*DZ23 + - DZ30*DZ30 + DZ31*DZ31 + - DZ32*DZ32 + DZ33*DZ33; - real_type epsi = (Z00*Z00+Z01*Z01+Z02*Z02+Z03*Z03+ - Z10*Z10+Z11*Z11+Z12*Z12+Z13*Z13+ - Z20*Z20+Z21*Z21+Z22*Z22+Z23*Z23+ - Z30*Z30+Z31*Z31+Z32*Z32+Z33*Z33)*1.0E-12; - // Accumulates the weighted primary estimates of zxy and their weights. - if ( volatility_factor > epsi ) { // finite weight. - real_type WT = 1 / (volatility_factor*SXX*SYY); - DXYF[1] += WT*PEZXY; - DXYF[0] += WT; - } else { // infinite weight. - DXYI[1] += PEZXY; - DXYI[0] += 1.0; - } - } - } - DX = DXI[0] < 0.5 ? DXF[1]/DXF[0] : DXI[1]/DXI[0]; - DY = DYI[0] < 0.5 ? DYF[1]/DYF[0] : DYI[1]/DYI[0]; - DXY = DXYI[0] < 0.5 ? DXYF[1]/DXYF[0] : DXYI[1]/DXYI[0]; - } - - #endif - - void - Akima2Dspline::makeSpline() { - - size_t nn = size_t( m_nx*m_ny ); - m_mem_bicubic.reallocate( 3*nn ); - m_DX = m_mem_bicubic( nn ); - m_DY = m_mem_bicubic( nn ); - m_DXY = m_mem_bicubic( nn ); - - std::fill_n(m_DX,nn,0); - std::fill_n(m_DY,nn,0); - std::fill_n(m_DXY,nn,0); - - real_type x_loc[9], y_loc[9], z_loc[9][9]; - - for ( size_t i0 = 0; i0 < size_t(m_nx); ++i0 ) { - size_t imin = 4 > i0 ? 4-i0 : 0; - size_t imax = size_t(m_nx) < 5+i0 ? 3+(size_t(m_nx)-i0) : 8; - - for ( size_t i = imin; i <= imax; ++i ) x_loc[i] = m_X[i+i0-4]-m_X[i0]; - - for ( size_t j0 = 0; j0 < size_t(m_ny); ++j0 ) { - size_t jmin = 4 > j0 ? 4-j0 : 0; - size_t jmax = size_t(m_ny) < 5+j0 ? 3+(size_t(m_ny)-j0) : 8; - - for ( size_t j = jmin; j <= jmax; ++j ) y_loc[j] = m_Y[j+j0-4]-m_Y[j0]; - - for ( size_t i = imin; i <= imax; ++i ) - for ( size_t j = jmin; j <= jmax; ++j ) - z_loc[i][j] = m_Z[size_t(ipos_C(integer(i+i0-4), - integer(j+j0-4), - m_ny))]; - - // if not enough points, extrapolate - size_t iadd = 0, jadd = 0; - if ( imax < 3+imin ) { - x_loc[imin-1] = 2*x_loc[imin] - x_loc[imax]; - x_loc[imax+1] = 2*x_loc[imax] - x_loc[imin]; - iadd = 1; - if ( imax == 1+imin ) { - real_type x0 = x_loc[imin]; - real_type x1 = x_loc[imax]; - for ( size_t j = jmin; j <= jmax; ++j ) { - real_type z0 = z_loc[imin][j]; - real_type z1 = z_loc[imax][j]; - z_loc[imin-1][j] = Extrapolate2( x0-x1, x_loc[imin-1]-x1, z1, z0 ); - z_loc[imax+1][j] = Extrapolate2( x1-x0, x_loc[imax+1]-x0, z0, z1 ); - } - } else { - real_type x0 = x_loc[imin]; - real_type x1 = x_loc[imin+1]; - real_type x2 = x_loc[imax]; - for ( size_t j = jmin; j <= jmax; ++j ) { - real_type z0 = z_loc[imin][j]; - real_type z1 = z_loc[imin+1][j]; - real_type z2 = z_loc[imax][j]; - z_loc[imin-1][j] = Extrapolate3( x1-x2, x0-x2, x_loc[imin-1]-x1, z2, z1, z0 ); - z_loc[imax+1][j] = Extrapolate3( x1-x0, x2-x0, x_loc[imax+1]-x0, z0, z1, z2 ); - } - } - } - if ( jmax < 3+jmin ) { - y_loc[jmin-1] = 2*y_loc[jmin] - y_loc[jmax]; - y_loc[jmax+1] = 2*y_loc[jmax] - y_loc[jmin]; - jadd = 1; - if ( jmax-jmin == 1 ) { - real_type y0 = y_loc[jmin]; - real_type y1 = y_loc[jmax]; - for ( size_t i = imin-iadd; i <= imax+iadd; ++i ) { - real_type z0 = z_loc[i][jmin]; - real_type z1 = z_loc[i][jmax]; - z_loc[i][jmin-1] = Extrapolate2( y0-y1, y_loc[jmin-1]-y1, z1, z0 ); - z_loc[i][jmax+1] = Extrapolate2( y1-y0, y_loc[jmax+1]-y0, z0, z1 ); - } - } else { - real_type y0 = y_loc[jmin]; - real_type y1 = y_loc[jmin+1]; - real_type y2 = y_loc[jmax]; - for ( size_t i = imin-iadd; i <= imax+iadd; ++i ) { - real_type z0 = z_loc[i][jmin]; - real_type z1 = z_loc[i][jmin+1]; - real_type z2 = z_loc[i][jmax]; - z_loc[i][imin-1] = Extrapolate3( y1-y2, y0-y2, y_loc[jmin-1]-y1, z2, z1, z0 ); - z_loc[i][imax+1] = Extrapolate3( y1-y0, y2-y0, y_loc[jmax+1]-y0, z0, z1, z2 ); - } - } - } - - size_t i0j0 = size_t(ipos_C(integer(i0),integer(j0))); - - AkimaSmooth( - x_loc, integer(imin-iadd), integer(imax+iadd), - y_loc, integer(jmin-jadd), integer(jmax+jadd), - z_loc, m_DX[i0j0], m_DY[i0j0], m_DXY[i0j0] - ); - } - } - } - - void - Akima2Dspline::writeToStream( ostream_type & s ) const { - fmt::print( s, "Nx = {} Ny = {}\n", m_nx, m_ny ); - for ( integer i = 1; i < m_nx; ++i ) { - for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t( ipos_C(i-1,j-1,m_ny) ); - size_t i10 = size_t( ipos_C(i,j-1,m_ny) ); - size_t i01 = size_t( ipos_C(i-1,j,m_ny) ); - size_t i11 = size_t( ipos_C(i,j,m_ny) ); - fmt::print( s, - "patch ({},{)\n" - " DX = {:<12.4} DY = {:<12.4}\n" - " Z00 = {:<12.4} Z01 = {:<12.4} Z10 = {:<12.4} Z11 = {:<12.4}\n" - " Dx00 = {:<12.4} Dx01 = {:<12.4} Dx10 = {:<12.4} Dx11 = {:<12.4}\n" - " Dy00 = {:<12.4} Dy01 = {:<12.4} Dy10 = {:<12.4} Dy11 = {:<12.4}\n", - i, j, - m_X[size_t(i)]-m_X[size_t(i-1)], - m_Y[size_t(j)]-m_Y[size_t(j-1)], - m_Z[i00], m_Z[i01], m_Z[i10], m_Z[i11], - m_DX[i00], m_DX[i01], m_DX[i10], m_DX[i11], - m_DY[i00], m_DY[i01], m_DY[i10], m_DY[i11] - ); - } - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - char const * - Akima2Dspline::type_name() const - { return "Akima2D"; } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.rst.txt deleted file mode 100644 index a17d4e8c..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.rst.txt +++ /dev/null @@ -1,61 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx: - -Program Listing for File SplineAkima2D.hxx -========================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima2D.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | _ _ _ ____ ____ _ _ - | / \ | | _(_)_ __ ___ __ _|___ \| _ \ ___ _ __ | (_)_ __ ___ - | / _ \ | |/ / | '_ ` _ \ / _` | __) | | | / __| '_ \| | | '_ \ / _ \ - | / ___ \| <| | | | | | | (_| |/ __/| |_| \__ \ |_) | | | | | | __/ - | /_/ \_\_|\_\_|_| |_| |_|\__,_|_____|____/|___/ .__/|_|_|_| |_|\___| - | |_| - \*/ - - namespace Splines { - - class Akima2Dspline : public BiCubicSplineBase { - void makeSpline() override; - - public: - - Akima2Dspline( string const & name = "Spline" ) - : BiCubicSplineBase( name ) - {} - - ~Akima2Dspline() override {} - - void writeToStream( ostream_type & s ) const override; - char const * type_name() const override; - - }; - } - - // EOF: SplineAkima2D.hxx - diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.rst.txt deleted file mode 100644 index 25d9aaad..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.rst.txt +++ /dev/null @@ -1,151 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc: - -Program Listing for File SplineBessel.cc -======================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBessel.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - - /*\ - | ____ _ ____ _ _ - | | __ ) ___ ___ ___ ___| / ___| _ __ | (_)_ __ ___ - | | _ \ / _ \/ __/ __|/ _ \ \___ \| '_ \| | | '_ \ / _ \ - | | |_) | __/\__ \__ \ __/ |___) | |_) | | | | | | __/ - | |____/ \___||___/___/\___|_|____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - void - Bessel_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts - ) { - - size_t n = size_t(npts > 0 ? npts-1 : 0); - - Utils::Malloc mem("Bessel_build"); - real_type * m = mem.malloc( size_t(n+1) ); - - // calcolo slopes - for ( size_t i = 0; i < n; ++i ) - m[i] = (Y[i+1]-Y[i])/(X[i+1]-X[i]); - - if ( npts == 2 ) { // caso speciale 2 soli punti - - Yp[0] = Yp[1] = m[0]; - - } else { - - for ( size_t i = 1; i < n; ++i ) { - real_type DL = X[i] - X[i-1]; - real_type DR = X[i+1] - X[i]; - Yp[i] = (DR*m[i-1]+DL*m[i])/((DL+DR)); - } - - Yp[0] = 1.5*m[0]-0.5*m[1]; - Yp[n] = 1.5*m[n-1]-0.5*m[n-2]; - } - } - - #endif - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BesselSpline::build() { - string msg = fmt::format("BesselSpline[{}]::build():", m_name ); - UTILS_ASSERT( - m_npts > 1, - "{} npts = {} not enought points\n", - msg, m_npts - ); - Utils::checkNaN( m_X, (msg+" X").c_str(), m_npts, __LINE__, __FILE__ ); - Utils::checkNaN( m_Y, (msg+" Y").c_str(), m_npts, __LINE__, __FILE__ ); - integer ibegin = 0; - integer iend = 0; - do { - // cerca intervallo monotono strettamente crescente - while ( ++iend < m_npts && m_X[iend-1] < m_X[iend] ) {} - Bessel_build( m_X+ibegin, m_Y+ibegin, m_Yp+ibegin, iend-ibegin ); - ibegin = iend; - } while ( iend < m_npts ); - - Utils::checkNaN( m_Yp, (msg+" Yp").c_str(), m_npts, __LINE__, __FILE__ ); - } - - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BesselSpline::setup( GenericContainer const & gc ) { - /* - // gc["xdata"] - // gc["ydata"] - // - */ - string msg = fmt::format("BesselSpline[{}]::setup( gc ):", m_name ); - UTILS_ASSERT( gc.exists("xdata"), "{} missing `xdata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ydata"), "{} missing `ydata` field!\n", msg ); - - GenericContainer const & gc_x = gc("xdata"); - GenericContainer const & gc_y = gc("ydata"); - - vec_real_type x, y; - { - std::string ff = fmt::format( "{}, field `xdata'", msg ); - gc_x.copyto_vec_real ( x, ff.c_str() ); - } - { - std::string ff = fmt::format( "{}, field `ydata'", msg ); - gc_y.copyto_vec_real ( y, ff.c_str() ); - } - this->build( x, y ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.rst.txt deleted file mode 100644 index af261868..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.rst.txt +++ /dev/null @@ -1,77 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx: - -Program Listing for File SplineBessel.hxx -========================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBessel.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ____ _ ____ _ _ - | | __ ) ___ ___ ___ ___| / ___| _ __ | (_)_ __ ___ - | | _ \ / _ \/ __/ __|/ _ \ \___ \| '_ \| | | '_ \ / _ \ - | | |_) | __/\__ \__ \ __/ |___) | |_) | | | | | | __/ - | |____/ \___||___/___/\___|_|____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - - namespace Splines { - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - void - Bessel_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts - ); - - #endif - - class BesselSpline : public CubicSplineBase { - public: - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using CubicSplineBase::build; - using CubicSplineBase::reserve; - #endif - - BesselSpline( string const & name = "BesselSpline" ) - : CubicSplineBase( name ) - {} - - ~BesselSpline() override {} - - unsigned type() const override { return BESSEL_TYPE; } - - // --------------------------- VIRTUALS ----------------------------------- - - void build() override; - void setup( GenericContainer const & gc ) override; - }; - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.rst.txt deleted file mode 100644 index 7b2f5984..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.rst.txt +++ /dev/null @@ -1,108 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc: - -Program Listing for File SplineBiCubic.cc -========================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiCubic.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BiCubicSpline::makeSpline() { - size_t nn = size_t(m_nx*m_ny); - m_mem_bicubic.reallocate( 3*nn ); - m_DX = m_mem_bicubic( nn ); - m_DY = m_mem_bicubic( nn ); - m_DXY = m_mem_bicubic( nn ); - - // calcolo derivate - PchipSpline sp; - for ( integer j = 0; j < m_ny; ++j ) { - sp.build( m_X, 1, &m_Z[size_t(this->ipos_C(0,j))], m_ny, m_nx ); - for ( integer i = 0; i < m_nx; ++i ) - m_DX[size_t(this->ipos_C(i,j))] = sp.ypNode(i); - } - for ( integer i = 0; i < m_nx; ++i ) { - sp.build( m_Y, 1, &m_Z[size_t(this->ipos_C(i,0))], 1, m_ny ); - for ( integer j = 0; j < m_ny; ++j ) - m_DY[size_t(this->ipos_C(i,j))] = sp.ypNode(j); - } - std::fill_n( m_DXY, nn, 0 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BiCubicSpline::writeToStream( ostream_type & s ) const { - fmt::print( "Nx = {} Ny = {}\n", m_nx, m_ny ); - for ( integer i = 1; i < m_nx; ++i ) { - for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t(this->ipos_C(i-1,j-1,m_ny)); - size_t i10 = size_t(this->ipos_C(i,j-1,m_ny)); - size_t i01 = size_t(this->ipos_C(i-1,j,m_ny)); - size_t i11 = size_t(this->ipos_C(i,j,m_ny)); - fmt::print( s, - "patch ({},{})\n" - "DX = {:<12.4} DY = {:<12.4}\n" - "Z00 = {:<12.4} Z01 = {:<12.4} Z10 = {:<12.4} Z11 = {:<12.4}\n" - "Dx00 = {:<12.4} Dx01 = {:<12.4} Dx10 = {:<12.4} Dx11 = {:<12.4}\n" - "Dy00 = {:<12.4} Dy01 = {:<12.4} Dy10 = {:<12.4} Dy11 = {:<12.4}\n", - i, j, - m_X[size_t(i)]-m_X[size_t(i-1)], - m_Y[size_t(j)]-m_Y[size_t(j-1)], - m_Z[i00], m_Z[i01], m_Z[i10], m_Z[i11], - m_DX[i00], m_DX[i01], m_DX[i10], m_DX[i11], - m_DY[i00], m_DY[i01], m_DY[i10], m_DY[i11] - ); - } - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - char const * - BiCubicSpline::type_name() const - { return "BiCubic"; } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.rst.txt deleted file mode 100644 index 947ff404..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.rst.txt +++ /dev/null @@ -1,128 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx: - -Program Listing for File SplineBiCubic.hxx -========================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiCubic.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - namespace Splines { - - /*\ - | ____ _ ____ _ _ ____ _ _ ____ - | | __ )(_)/ ___| _| |__ (_) ___/ ___| _ __ | (_)_ __ ___| __ ) __ _ ___ ___ - | | _ \| | | | | | | '_ \| |/ __\___ \| '_ \| | | '_ \ / _ \ _ \ / _` / __|/ _ \ - | | |_) | | |__| |_| | |_) | | (__ ___) | |_) | | | | | | __/ |_) | (_| \__ \ __/ - | |____/|_|\____\__,_|_.__/|_|\___|____/| .__/|_|_|_| |_|\___|____/ \__,_|___/\___| - | |_| - \*/ - - class BiCubicSplineBase : public SplineSurf { - protected: - - Utils::Malloc m_mem_bicubic; - - real_type * m_DX; - real_type * m_DY; - real_type * m_DXY; - - using SplineSurf::m_nx; - using SplineSurf::m_ny; - - using SplineSurf::m_X; - using SplineSurf::m_Y; - using SplineSurf::m_Z; - - void load( integer i, integer j, real_type bili3[4][4] ) const; - - public: - - BiCubicSplineBase( string const & name = "Spline" ) - : SplineSurf( name ) - , m_mem_bicubic("BiCubicSplineBase") - , m_DX(nullptr) - , m_DY(nullptr) - , m_DXY(nullptr) - {} - - ~BiCubicSplineBase() override {} - - real_type - DxNode ( integer i, integer j ) const - { return m_DX[size_t(this->ipos_C(i,j))]; } - - real_type - DyNode ( integer i, integer j ) const - { return m_DY[size_t(this->ipos_C(i,j))]; } - - real_type - DxyNode( integer i, integer j ) const - { return m_DXY[size_t(this->ipos_C(i,j))]; } - - real_type operator () ( real_type x, real_type y ) const override; - - void D( real_type x, real_type y, real_type d[3] ) const override; - real_type Dx( real_type x, real_type y ) const override; - real_type Dy( real_type x, real_type y ) const override; - - void DD( real_type x, real_type y, real_type dd[6] ) const override; - real_type Dxx( real_type x, real_type y ) const override; - real_type Dxy( real_type x, real_type y ) const override; - real_type Dyy( real_type x, real_type y ) const override; - }; - - /*\ - | ____ _ ____ _ _ ____ _ _ - | | __ )(_)/ ___| _| |__ (_) ___/ ___| _ __ | (_)_ __ ___ - | | _ \| | | | | | | '_ \| |/ __\___ \| '_ \| | | '_ \ / _ \ - | | |_) | | |__| |_| | |_) | | (__ ___) | |_) | | | | | | __/ - | |____/|_|\____\__,_|_.__/|_|\___|____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - class BiCubicSpline : public BiCubicSplineBase { - void makeSpline() override; - - using BiCubicSplineBase::m_mem_bicubic; - using BiCubicSplineBase::m_DX; - using BiCubicSplineBase::m_DY; - using BiCubicSplineBase::m_DXY; - - public: - - BiCubicSpline( string const & name = "Spline" ) - : BiCubicSplineBase( name ) - {} - - ~BiCubicSpline() override {} - - void writeToStream( ostream_type & s ) const override; - char const * type_name() const override; - - }; - - } - - // EOF: SplineBiCubic.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.rst.txt deleted file mode 100644 index 9e3d39fc..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.rst.txt +++ /dev/null @@ -1,148 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc: - -Program Listing for File SplineBiQuintic.cc -=========================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiQuintic.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BiQuinticSpline::makeSpline() { - - size_t dim = size_t( m_nx*m_ny ); - mem.reallocate( 8*dim ); - m_DX = mem( dim ); - m_DY = mem( dim ); - m_DXY = mem( dim ); - m_DXX = mem( dim ); - m_DYY = mem( dim ); - m_DXYY = mem( dim ); - m_DXXY = mem( dim ); - m_DXXYY = mem( dim ); - - // calcolo derivate - QuinticSpline sp, sp1; - // - for ( integer j = 0; j < m_ny; ++j ) { - sp.build( m_X, 1, &m_Z[size_t(this->ipos_C(0,j))], m_ny, m_nx ); - for ( integer i = 0; i < m_nx; ++i ) { - size_t ij = size_t(this->ipos_C(i,j)); - m_DX[ij] = sp.ypNode(i); - m_DXX[ij] = sp.yppNode(i); - } - } - for ( integer i = 0; i < m_nx; ++i ) { - sp.build( m_Y, 1, &m_Z[size_t(this->ipos_C(i,0))], 1, m_ny ); - for ( integer j = 0; j < m_ny; ++j ) { - size_t ij = size_t(this->ipos_C(i,j)); - m_DY[ij] = sp.ypNode(j); - m_DYY[ij] = sp.yppNode(j); - } - } - // interpolate derivative - for ( integer i = 0; i < m_nx; ++i ) { - sp.build( m_Y, 1, &m_DX[size_t(this->ipos_C(i,0))], 1, m_ny ); - sp1.build( m_Y, 1, &m_DXX[size_t(this->ipos_C(i,0))], 1, m_ny ); - for ( integer j = 0; j < m_ny; ++j ) { - size_t ij = size_t(this->ipos_C(i,j)); - m_DXY[ij] = sp.ypNode(j); - m_DXYY[ij] = sp.yppNode(j); - m_DXXY[ij] = sp1.ypNode(j); - m_DXXYY[ij] = sp1.yppNode(j); - } - } - // interpolate derivative again - for ( integer j = 0; j < m_ny; ++j ) { - sp.build( m_X, 1, &m_DY[size_t(this->ipos_C(0,j))], m_ny, m_nx ); - sp1.build( m_X, 1, &m_DYY[size_t(this->ipos_C(0,j))], m_ny, m_nx ); - for ( integer i = 0; i < m_nx; ++i ) { - size_t ij = size_t(this->ipos_C(i,j)); - m_DXY[ij] += sp.ypNode(i); m_DXY[ij] /= 2; - m_DXXY[ij] += sp.yppNode(i); m_DXXY[ij] /= 2; - m_DXYY[ij] += sp1.ypNode(i); m_DXYY[ij] /= 2; - m_DXXYY[ij] += sp1.yppNode(i); m_DXXYY[ij] /= 2; - } - } - - //std::fill( DXY.begin(), DXY.end(), 0 ); - //std::fill( DXX.begin(), DXX.end(), 0 ); - //std::fill( DYY.begin(), DYY.end(), 0 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BiQuinticSpline::writeToStream( ostream_type & s ) const { - fmt::print( s, "Nx = {} Ny = {}\n", m_nx, m_ny ); - for ( integer i = 1; i < m_nx; ++i ) { - for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t(this->ipos_C(i-1,j-1,m_ny)); - size_t i10 = size_t(this->ipos_C(i,j-1,m_ny)); - size_t i01 = size_t(this->ipos_C(i-1,j,m_ny)); - size_t i11 = size_t(this->ipos_C(i,j,m_ny)); - fmt::print( s, - "patch({},{})\n" - " DX = {:<12.4} DY = {:<12.4}\n" - " Z00 = {:<12.4} Z01 = {:<12.4} Z10 = {:<12.4} Z11 = {:<12.4}\n" - " Dx00 = {:<12.4} Dx01 = {:<12.4} Dx10 = {:<12.4} Dx10 = {:<12.4}\n" - " Dy00 = {:<12.4} Dy01 = {:<12.4} Dy10 = {:<12.4} Dy11 = {:<12.4}\n", - i, j, - m_X[size_t(i)]-m_X[size_t(i-1)], - m_Y[size_t(j)]-m_Y[size_t(j-1)], - m_Z[i00], m_Z[i01], m_Z[i10], m_Z[i11], - m_DX[i00], m_DX[i01], m_DX[i10], m_DX[i11], - m_DY[i00], m_DY[i01], m_DY[i10], m_DY[i11] - ); - } - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - char const * - BiQuinticSpline::type_name() const - { return "BiQuintic"; } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.rst.txt deleted file mode 100644 index fd5138b1..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.rst.txt +++ /dev/null @@ -1,132 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx: - -Program Listing for File SplineBiQuintic.hxx -============================================ - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiQuintic.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ____ _ ___ _ _ _ ____ _ _ ____ - | | __ )(_)/ _ \ _ _(_)_ __ | |_(_) ___/ ___| _ __ | (_)_ __ ___| __ ) __ _ ___ ___ - | | _ \| | | | | | | | | '_ \| __| |/ __\___ \| '_ \| | | '_ \ / _ \ _ \ / _` / __|/ _ \ - | | |_) | | |_| | |_| | | | | | |_| | (__ ___) | |_) | | | | | | __/ |_) | (_| \__ \ __/ - | |____/|_|\__\_\\__,_|_|_| |_|\__|_|\___|____/| .__/|_|_|_| |_|\___|____/ \__,_|___/\___| - | |_| - \*/ - - namespace Splines { - - class BiQuinticSplineBase : public SplineSurf { - protected: - - Utils::Malloc mem; - - real_type * m_DX; - real_type * m_DXX; - real_type * m_DY; - real_type * m_DYY; - real_type * m_DXY; - real_type * m_DXYY; - real_type * m_DXXY; - real_type * m_DXXYY; - void load( integer i, integer j, real_type bili5[6][6] ) const; - - public: - - BiQuinticSplineBase( string const & name = "Spline" ) - : SplineSurf( name ) - , mem("BiQuinticSplineBase") - , m_DX(nullptr) - , m_DXX(nullptr) - , m_DY(nullptr) - , m_DYY(nullptr) - , m_DXY(nullptr) - , m_DXYY(nullptr) - , m_DXXY(nullptr) - {} - - ~BiQuinticSplineBase() override - { mem.free(); } - - real_type - DxNode( integer i, integer j ) const - { return m_DX[size_t(this->ipos_C(i,j))]; } - - real_type - DyNode( integer i, integer j ) const - { return m_DY[size_t(this->ipos_C(i,j))]; } - - real_type - DxxNode( integer i, integer j ) const - { return m_DXX[size_t(this->ipos_C(i,j))]; } - - real_type - DyyNode( integer i, integer j ) const - { return m_DYY[size_t(this->ipos_C(i,j))]; } - - real_type - DxyNode( integer i, integer j ) const - { return m_DXY[size_t(this->ipos_C(i,j))]; } - - real_type operator () ( real_type x, real_type y ) const override; - - void D( real_type x, real_type y, real_type d[3] ) const override; - real_type Dx( real_type x, real_type y ) const override; - real_type Dy( real_type x, real_type y ) const override; - - void DD( real_type x, real_type y, real_type dd[6] ) const override; - real_type Dxx( real_type x, real_type y ) const override; - real_type Dxy( real_type x, real_type y ) const override; - real_type Dyy( real_type x, real_type y ) const override; - }; - - /*\ - | ____ _ ___ _ _ _ ____ _ _ - | | __ )(_)/ _ \ _ _(_)_ __ | |_(_) ___/ ___| _ __ | (_)_ __ ___ - | | _ \| | | | | | | | | '_ \| __| |/ __\___ \| '_ \| | | '_ \ / _ \ - | | |_) | | |_| | |_| | | | | | |_| | (__ ___) | |_) | | | | | | __/ - | |____/|_|\__\_\\__,_|_|_| |_|\__|_|\___|____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - class BiQuinticSpline : public BiQuinticSplineBase { - void makeSpline() override; - public: - - BiQuinticSpline( string const & name = "Spline" ) - : BiQuinticSplineBase( name ) - {} - - ~BiQuinticSpline() override {} - - void writeToStream( ostream_type & s ) const override; - char const * type_name() const override; - - }; - - } - - // EOF: SplineBiQuintic.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.rst.txt deleted file mode 100644 index c03b0c42..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.rst.txt +++ /dev/null @@ -1,160 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc: - -Program Listing for File SplineBilinear.cc -========================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBilinear.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BilinearSpline::operator () ( real_type x, real_type y ) const { - integer i = this->search_x( x ); - integer j = this->search_y( y ); - real_type DX = m_X[size_t(i+1)] - m_X[size_t(i)]; - real_type DY = m_Y[size_t(j+1)] - m_Y[size_t(j)]; - real_type u = (x-m_X[size_t(i)])/DX; - real_type v = (y-m_Y[size_t(j)])/DY; - real_type u1 = 1-u; - real_type v1 = 1-v; - real_type Z00 = m_Z[size_t(this->ipos_C(i,j))]; - real_type Z01 = m_Z[size_t(this->ipos_C(i,j+1))]; - real_type Z10 = m_Z[size_t(this->ipos_C(i+1,j))]; - real_type Z11 = m_Z[size_t(this->ipos_C(i+1,j+1))]; - return u1 * ( Z00 * v1 + Z01 * v ) + - u * ( Z10 * v1 + Z11 * v ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BilinearSpline::Dx( real_type x, real_type y ) const { - integer i = this->search_x( x ); - integer j = this->search_y( y ); - real_type DX = m_X[size_t(i+1)] - m_X[size_t(i)]; - real_type DY = m_Y[size_t(j+1)] - m_Y[size_t(j)]; - real_type v = (y-m_Y[size_t(j)])/DY; - real_type Z00 = m_Z[size_t(ipos_C(i,j))]; - real_type Z01 = m_Z[size_t(ipos_C(i,j+1))]; - real_type Z10 = m_Z[size_t(ipos_C(i+1,j))]; - real_type Z11 = m_Z[size_t(ipos_C(i+1,j+1))]; - return ( (Z10-Z00) * (1-v) + (Z11-Z01) * v ) / DX; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BilinearSpline::Dy( real_type x, real_type y ) const { - integer i = this->search_x( x ); - integer j = this->search_y( y ); - real_type DX = m_X[size_t(i+1)] - m_X[size_t(i)]; - real_type DY = m_Y[size_t(j+1)] - m_Y[size_t(j)]; - real_type u = (x-m_X[size_t(i)])/DX; - real_type Z00 = m_Z[size_t(ipos_C(i,j))]; - real_type Z01 = m_Z[size_t(ipos_C(i,j+1))]; - real_type Z10 = m_Z[size_t(ipos_C(i+1,j))]; - real_type Z11 = m_Z[size_t(ipos_C(i+1,j+1))]; - return ( ( Z01-Z00 ) * (1-u) + ( Z11-Z10 ) * u ) / DY; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BilinearSpline::D( real_type x, real_type y, real_type d[3] ) const { - integer i = this->search_x( x ); - integer j = this->search_y( y ); - real_type DX = m_X[size_t(i+1)] - m_X[size_t(i)]; - real_type DY = m_Y[size_t(j+1)] - m_Y[size_t(j)]; - real_type u = (x-m_X[size_t(i)])/DX; - real_type v = (y-m_Y[size_t(j)])/DY; - real_type u1 = 1-u; - real_type v1 = 1-v; - real_type Z00 = m_Z[size_t(this->ipos_C(i,j))]; - real_type Z01 = m_Z[size_t(this->ipos_C(i,j+1))]; - real_type Z10 = m_Z[size_t(this->ipos_C(i+1,j))]; - real_type Z11 = m_Z[size_t(this->ipos_C(i+1,j+1))]; - d[0] = u1 * ( Z00 * v1 + Z01 * v ) + u * ( Z10 * v1 + Z11 * v ); - d[1] = v1 * (Z10-Z00) + v * (Z11-Z01); d[1] /= DX; - d[2] = u1 * (Z01-Z00) + u * (Z11-Z10); d[2] /= DY; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BilinearSpline::DD( real_type x, real_type y, real_type d[6] ) const { - this->D( x, y, d ); - d[3] = d[4] = d[5] = 0; // second derivative are 0 - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BilinearSpline::writeToStream( ostream_type & s ) const { - fmt::print( s, "Nx = {} Ny = {}\n", m_nx, m_ny ); - for ( integer i = 1; i < m_nx; ++i ) { - for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t(this->ipos_C(i-1,j-1,m_ny)); - size_t i10 = size_t(this->ipos_C(i,j-1,m_ny)); - size_t i01 = size_t(this->ipos_C(i-1,j,m_ny)); - size_t i11 = size_t(this->ipos_C(i,j,m_ny)); - fmt::print( s, - "patch ({},{})\n" - " DX = {:<12.4} DY = {:<12.4}\n" - " Z00 = {:<12.4} Z01 = {:<12.4} Z10 = {:<12.4} Z11 = {:<12.4}\n", - i, j, - m_X[size_t(i)]-m_X[size_t(i-1)], - m_Y[size_t(j)]-m_Y[size_t(j-1)], - m_Z[i00], m_Z[i01], m_Z[i10], m_Z[i11] - ); - } - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - char const * - BilinearSpline::type_name() const - { return "bilinear"; } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.rst.txt deleted file mode 100644 index 41100e60..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.rst.txt +++ /dev/null @@ -1,80 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx: - -Program Listing for File SplineBilinear.hxx -=========================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBilinear.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ____ _ _ _ ____ _ _ - | | __ )(_) (_)_ __ ___ __ _ _ __/ ___| _ __ | (_)_ __ ___ - | | _ \| | | | '_ \ / _ \/ _` | '__\___ \| '_ \| | | '_ \ / _ \ - | | |_) | | | | | | | __/ (_| | | ___) | |_) | | | | | | __/ - | |____/|_|_|_|_| |_|\___|\__,_|_| |____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - - namespace Splines { - - class BilinearSpline : public SplineSurf { - - void makeSpline() override {} - - using SplineSurf::m_nx; - using SplineSurf::m_ny; - - using SplineSurf::m_X; - using SplineSurf::m_Y; - using SplineSurf::m_Z; - - public: - - BilinearSpline( string const & name = "Spline" ) - : SplineSurf(name) - {} - - ~BilinearSpline() override {} - - real_type operator () ( real_type x, real_type y ) const override; - - void D( real_type x, real_type y, real_type d[3] ) const override; - real_type Dx( real_type x, real_type y ) const override; - real_type Dy( real_type x, real_type y ) const override; - - void DD( real_type x, real_type y, real_type dd[6] ) const override; - real_type Dxx( real_type , real_type ) const override { return 0; } - real_type Dxy( real_type , real_type ) const override { return 0; } - real_type Dyy( real_type , real_type ) const override { return 0; } - - void writeToStream( ostream_type & s ) const override; - char const * type_name() const override; - - }; - - } - - // EOF: SplineBilinear.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.rst.txt deleted file mode 100644 index 98b6c0e5..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.rst.txt +++ /dev/null @@ -1,185 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc: - -Program Listing for File SplineConstant.cc -========================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineConstant.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - ConstantSpline::reserve_external( - integer n, - real_type *& p_x, - real_type *& p_y - ) { - if ( !m_external_alloc ) m_baseValue.free(); - m_npts = 0; - m_npts_reserved = n; - m_external_alloc = true; - m_X = p_x; - m_Y = p_y; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - ConstantSpline::reserve( integer n ) { - if ( m_external_alloc && n <= m_npts_reserved ) { - // nothing to do!, already allocated - } else { - m_baseValue.reallocate( size_t(2*n) ); - m_npts_reserved = n; - m_external_alloc = false; - m_X = m_baseValue( size_t(n) ); - m_Y = m_baseValue( size_t(n) ); - } - initLastInterval(); - m_npts = 0; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - ConstantSpline::operator () ( real_type x ) const { - return m_Y[this->search(x)]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - ConstantSpline::id_eval( integer ni, real_type ) const { - return m_Y[ni]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - ConstantSpline::build( - real_type const * x, integer incx, - real_type const * y, integer incy, - integer n - ) { - reserve( n ); - for ( size_t i = 0; i < size_t(n); ++i ) m_X[i] = x[i*size_t(incx)]; - for ( size_t i = 0; i+1 < size_t(n); ++i ) m_Y[i] = y[i*size_t(incy)]; - m_npts = n; - build(); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - ConstantSpline::clear() { - if ( !m_external_alloc ) m_baseValue.free(); - m_npts = m_npts_reserved = 0; - m_external_alloc = false; - m_X = m_Y = nullptr; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - ConstantSpline::writeToStream( ostream_type & s ) const { - size_t nseg = size_t(m_npts > 0 ? m_npts - 1 : 0); - for ( size_t i = 0; i < nseg; ++i ) - fmt::print( s, - "segment N. {:4} X:[{},{}] Y:{}\n", - i, m_X[i], m_X[i+1], m_Y[i] - ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer // order - ConstantSpline::coeffs( - real_type * const cfs, - real_type * const nodes, - bool - ) const { - size_t nseg = size_t(m_npts > 0 ? m_npts - 1 : 0); - for ( size_t i = 0; i < nseg; ++i ) { - nodes[i] = m_X[i]; - cfs[i] = m_Y[i]; - } - return 1; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer // order - ConstantSpline::order() const - { return 1; } - - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - ConstantSpline::setup( GenericContainer const & gc ) { - /* - // gc["xdata"] - // gc["ydata"] - // - */ - string msg = fmt::format("ConstantSpline[{}]::setup( gc ):", m_name ); - UTILS_ASSERT( gc.exists("xdata"), "{} missing `xdata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ydata"), "{} missing `ydata` field!\n", msg ); - - GenericContainer const & gc_x = gc("xdata"); - GenericContainer const & gc_y = gc("ydata"); - - vec_real_type x, y; - { - std::string ff = fmt::format( "{}, field `xdata'", msg ); - gc_x.copyto_vec_real ( x, ff.c_str() ); - } - { - std::string ff = fmt::format( "{}, field `ydata'", msg ); - gc_y.copyto_vec_real ( y, ff.c_str() ); - } - this->build( x, y ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.rst.txt deleted file mode 100644 index 375359a8..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.rst.txt +++ /dev/null @@ -1,113 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx: - -Program Listing for File SplineConstant.hxx -=========================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineConstant.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ____ _ _ ____ _ _ - | / ___|___ _ __ ___| |_ __ _ _ __ | |_ ___/ ___| _ __ | (_)_ __ ___ - | | | / _ \| '_ \/ __| __/ _` | '_ \| __/ __\___ \| '_ \| | | '_ \ / _ \ - | | |__| (_) | | | \__ \ || (_| | | | | |_\__ \___) | |_) | | | | | | __/ - | \____\___/|_| |_|___/\__\__,_|_| |_|\__|___/____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - - namespace Splines { - - class ConstantSpline : public Spline { - Utils::Malloc m_baseValue; - bool m_external_alloc; - - public: - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using Spline::build; - #endif - - ConstantSpline( string const & name = "ConstantSpline" ) - : Spline(name) - , m_baseValue(name+"_memory") - , m_external_alloc(false) - {} - - ~ConstantSpline() override {} - - void - reserve_external( - integer n, - real_type * & p_x, - real_type * & p_y - ); - - // --------------------------- VIRTUALS ----------------------------------- - void build() override {} // nothing to do - - void - build( - real_type const * x, integer incx, - real_type const * y, integer incy, - integer n - ) override; - - real_type operator () ( real_type x ) const override; - real_type D( real_type ) const override { return 0; } - real_type DD( real_type ) const override { return 0; } - real_type DDD( real_type ) const override { return 0; } - - real_type id_eval( integer ni, real_type x ) const override; - real_type id_D( integer, real_type ) const override { return 0; } - real_type id_DD( integer, real_type ) const override { return 0; } - real_type id_DDD( integer, real_type ) const override { return 0; } - - void writeToStream( ostream_type & ) const override; - unsigned type() const override { return CONSTANT_TYPE; } - - // --------------------------- VIRTUALS ----------------------------------- - - void - reserve( integer npts ) override; - - void - clear() override; - - integer // order - coeffs( - real_type * const cfs, - real_type * const nodes, - bool transpose = false - ) const override; - - integer order() const override; - void setup( GenericContainer const & gc ) override; - - }; - } - - // EOF: SplineConstant.hxx - diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.rst.txt deleted file mode 100644 index fedcade5..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.rst.txt +++ /dev/null @@ -1,562 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc: - -Program Listing for File SplineCubic.cc -======================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubic.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - /*\ - | #### # # ##### # #### - | # # # # # # # # # - | # # # ##### # # - | # # # # # # # - | # # # # # # # # # - | #### #### ##### # #### - \*/ - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - inline - real_type - deriv2_3p_L( - real_type SR, real_type hR, - real_type SRR, real_type hRR - ) { - return 2*(SRR-SR)/(hR+hRR); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - real_type - deriv2_4p_L( - real_type SR, real_type hR, - real_type SRR, real_type hRR, - real_type SRRR, real_type hRRR - ) { - real_type t5 = hRR*hRR; - real_type t12 = SR-SRR; - real_type t13 = t12*hRRR; - real_type t19 = hR*hR; - real_type t23 = hRRR*hRRR; - real_type bot = (hRR+hRRR)*(hR+hRR+hRRR)*(hR+hRR); - real_type top = t5*(6*SRR-4*SR-2*SRRR) + 6*hRR*((2*SRR-SR-SRRR)*hR-t13) + - 4*t19*(SRR-SRRR) - 6*hR*t13 - 2*t12*t23; - return top/bot; - } - - static - real_type - deriv2_5p_L( - real_type SR, real_type hR, - real_type SRR, real_type hRR, - real_type SRRR, real_type hRRR, - real_type SRRRR, real_type hRRRR - ) { - real_type t1 = SRRRR-SRRR; - real_type t3 = hRR*hRR; - real_type t4 = t3*t3; - real_type t10 = 6*SRRRR; - real_type t16 = SR-2*SRR+SRRR; - real_type t17 = t16*hRRRR; - real_type t25 = hRRR*hRRR; - real_type t29 = 60*SRRR; - real_type t30 = 30*SRRRR; - real_type t35 = SR-(8.0/5.0)*SRR+(3.0/5.0)*SRRR; - real_type t41 = hR*hR; - real_type t49 = hRRRR*hRRRR; - real_type t55 = 24*SR; - real_type t56 = 30*SRR; - real_type t60 = t25*hRRR; - real_type t75 = 12*SR; - real_type t76 = 60*SRR; - real_type t91 = t41*hR; - real_type t102 = t49*hRRRR; - real_type t105 = SR-(3.0/2.0)*SRR+SRRR/2; - real_type t110 = SRR-SR; - real_type t112 = t25*t25; - real_type t118 = -t110; - real_type t119 = t118*hRRRR; - real_type t134 = t118*t49; - real_type t142 = SR-(10.0/3.0)*SRR+(7.0/3.0)*SRRR; - real_type t149 = t118*t102; - real_type t156 = SRR-SRRR; - real_type t159 = (5.0/2.0)*t41*t156*hRRRR; - real_type MapleGenVar2 = 2*t4*hRR*t1 + t4*( hRRR*(12*SRR-6*SR-12*SRRR+t10) + 12*hR*t1 - 6*t17 ); - real_type MapleGenVar3 = MapleGenVar2 + - t3*hRR*( - t25*(32*SRR-20*SR-18*SRRR+t10) + - hRRR*(hR*(t30-18*SR+48*SRR-t29)-30*hRRRR*t35) + - 24*t41*t1 - 10*t49*t35 + hRRRR*(48*SRR-18*SR-30*SRRR)*hR - ); - real_type MapleGenVar1 = MapleGenVar3 + - t3*( - t60*(2*SRRRR-t55+t56-8*SRRR) + - t25*( (-48*SR+96*SRR-72*SRRR+24*SRRRR)*hR - hRRRR*(48*SR-60*SRR+12*SRRR) ) + - hRRR*(t41*(48*SRRRR-96*SRRR-t75+t76)- 72*hR*t17-t49*(28*SR-36*SRR+8*SRRR)) + - 20*t91*t1 - 12*t41*(SR-5*SRR+4*SRRR)*hRRRR - 24*hR*t16*t49 - 4*t105*t102 - ) + - hRR*( 12*t112*t110 + t60*(hR*(t76-42*SR-24*SRRR+t10)-30*t119) + - t25*(t41*(80*SRR-84*SRRR+28*SRRRR-t55) - (84*SR-120*SRR+36*SRRR)*hRRRR*hR - 24*t134 ) + - hRRR*( t91*(t56-t29+t30) - 36*t41*hRRRR*t142 - 48*hR*t105*t49 - 6*t149 ) - -( 6*(t16*t102 - t91*t1) + 12*(hR*t142*t49 - t159) )*hR - ); - real_type top = ((28*SRR-12*SR-16*SRRR)*t49*hRRR + 6*t41*t156*hRRRR)*t41 + - (((6*SRR-12*SRRR+6*SRRRR)*t91+12*t159-6*t149)*hRRR - -12*t112*t118-24*t25*t134-30*t60*t119+10*t41*t156*t49)*hR + - 2*t112*hRRR*t110 + - ((4*SRRRR-t75-16*SRRR+24*SRR)*t60-24*t25*t17+4*t156*t102)*t41 + - (t91*(20*SRR-30*SRRR+10*SRRRR)-2*t149)*t25 - - 6*t112*t118*hRRRR+MapleGenVar1-6*t60*t134; - real_type bot = (hR+hRR)*(hRRR+hRRRR)*(hRR+hRRR)*(hRR+hRRR+hRRRR)*(hR+hRR+hRRR)*(hR+hRR+hRRR+hRRRR); - return top/bot; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - inline - real_type - deriv2_3p_R( - real_type SL, real_type hL, - real_type SLL, real_type hLL - ) { - return 2*(SL-SLL)/(hL+hLL); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - real_type - deriv2_4p_R( - real_type SL, real_type hL, - real_type SLL, real_type hLL, - real_type SLLL, real_type hLLL - ) { - real_type t5 = hLL*hLL; - real_type t12 = SL-SLL; - real_type t13 = t12*hLLL; - real_type t19 = hL*hL; - real_type t23 = hLLL*hLLL; - real_type bot = (hLL+hLLL)*(hL+hLL+hLLL)*(hL+hLL); - real_type top = t5*(4*SL-6*SLL+2*SLLL) + 6*hLL*((SL+SLLL-2*SLL)*hL+t13) + - 4*t19*(SLLL-SLL) + 6*hL*t13+2*t12*t23; - return top/bot; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - real_type - deriv2_5p_R( - real_type SL, real_type hL, - real_type SLL, real_type hLL, - real_type SLLL, real_type hLLL, - real_type SLLLL, real_type hLLLL - ) { - real_type t1 = SLLL-SLLLL; - real_type t3 = hLL*hLL; - real_type t4 = t3*t3; - real_type t10 = 6*SLLLL; - real_type t16 = SL-2*SLL+SLLL; - real_type t17 = t16*hLLLL; - real_type t25 = hLLL*hLLL; - real_type t29 = 60*SLLL; - real_type t30 = 30*SLLLL; - real_type t35 = SL-(8.0/5.0)*SLL+(3.0/5.0)*SLLL; - real_type t41 = hL*hL; - real_type t49 = hLLLL*hLLLL; - real_type t55 = 24*SL; - real_type t56 = 30*SLL; - real_type t60 = t25*hLLL; - real_type t75 = 12*SL; - real_type t76 = 60*SLL; - real_type t91 = t41*hL; - real_type t102 = t49*hLLLL; - real_type t105 = SL-(3.0/2.0)*SLL+SLLL/2; - real_type t110 = SL-SLL; - real_type t112 = t25*t25; - real_type t118 = t110*hLLLL; - real_type t133 = t110*t49; - real_type t141 = SL-(10.0/3.0)*SLL+(7.0/3.0)*SLLL; - real_type t148 = t110*t102; - real_type t156 = t41*(SLL-SLLL)*hLLLL; - real_type t157 = (5.0/2.0)*t156; - real_type MapleGenVar2 = 2*t4*hLL*t1 + t4*(hLLL*(6*SL+12*(SLLL-SLL)-t10)+ 12*hL*t1+6*t17); - real_type MapleGenVar3 = MapleGenVar2 + - t3*hLL*(t25*(20*SL-32*SLL+18*SLLL-t10)+ - hLLL*(hL*(18*SL-48*SLL+t29-t30)+30*hLLLL*t35)+ - 24*t41*t1+10*t49*t35+ - (18*SL-48*SLL+30*SLLL)*hLLLL*hL); - real_type MapleGenVar1 = MapleGenVar3 + - t3*( t60*(t55-t56+8*SLLL-2*SLLLL) + - t25*((48*SL-96*SLL+72*SLLL-24*SLLLL)*hL + - 12*(4*SL-5*SLL+SLLL)*hLLLL) + - hLLL*(t41*(t75-t76+96*SLLL-48*SLLLL) + - 72*hL*t17+(28*SL-36*SLL+8*SLLL)*t49) + - 20*t91*t1 + 24*hL*t16*t49 + 4*t105*t102 + - 12*t41*(SL-5*SLL+4*SLLL)*hLLLL - ) + - hLL*( - 12*t112*t110 + - t60*(hL*(42*SL-t76+24*SLLL-t10)+30*t118) + - t25*( - t41*(t55-80*SLL+84*SLLL-28*SLLLL) + - 12*hLLLL*(7*SL-10*SLL+3*SLLL)*hL+24*t133 - ) + - hLLL*(t91*(t29-t56-t30) + 36*t41*t141*hLLLL + 48*hL*t105*t49 + 6*t148) + - 6*(t91*t1 + 2*(hL*t141*t49-t157) + t16*t102)*hL - ); - real_type top = MapleGenVar1 + 2*t112*hLLL*t110 + - 6*t112*t110*(2*hL+hLLLL) - t156*(hL+hLLLL)*(6*hL+4*hLLLL) + - t60*( t41*(t75-24*SLL+16*SLLL-4*SLLLL) + 30*hL*t118+6*t133 ) + - t25*( t91*(30*SLLL-20*SLL-10*SLLLL)+24*(t41*t17+hL*t133)+2*t148 ) + - hLLL*hL*( 6*t91*(2*SLLL-SLL-SLLLL)-12*t157 + hL*(12*SL-28*SLL+16*SLLL)*t49+6*t148); - real_type bot = (hL+hLL)*(hLLL+hLLLL)*(hLL+hLLL)*(hLL+hLLL+hLLLL)*(hL+hLL+hLLL)*(hL+hLL+hLLL+hLLLL); - return top/bot; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /*\ - Sistema lineare da risolvere - - D U UU - L D U - L D U - L D U - ..... - L D U - L D U - LL L D - - \*/ - - void - CubicSpline_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - real_type * Ypp, - real_type * L, - real_type * D, - real_type * U, - integer npts, - CUBIC_SPLINE_TYPE_BC bc0, - CUBIC_SPLINE_TYPE_BC bcn - ) { - - size_t n = size_t(npts > 0 ? npts-1 : 0); - real_type * Z = Ypp; - - size_t i; - for ( i = 1; i < n; ++i ) { - real_type HL = X[i] - X[i-1]; - real_type HR = X[i+1] - X[i]; - real_type HH = HL+HR; - L[i] = HL/HH; - U[i] = HR/HH; - D[i] = 2; - Z[i] = 6 * ( (Y[i+1]-Y[i])/HR - (Y[i]-Y[i-1])/HL ) / HH; - } - - real_type UU = 0, LL = 0; - - switch ( bc0 ) { - case EXTRAPOLATE_BC: - L[0] = 0; D[0] = 1; U[0] = 0; - if ( npts == 2 ) { - Z[0] = 0; - } else if ( npts == 3 ) { - real_type hR = X[1] - X[0]; - real_type hRR = X[2] - X[1]; - real_type SR = (Y[1] - Y[0])/hR; - real_type SRR = (Y[2] - Y[1])/hRR; - Z[0] = deriv2_3p_L( SR, hR, SRR, hRR ); - } else if ( npts == 4 ) { - real_type hR = X[1] - X[0]; - real_type hRR = X[2] - X[1]; - real_type hRRR = X[3] - X[2]; - real_type SR = (Y[1] - Y[0])/hR; - real_type SRR = (Y[2] - Y[1])/hRR; - real_type SRRR = (Y[3] - Y[2])/hRRR; - Z[0] = deriv2_4p_L( SR, hR, SRR, hRR, SRRR, hRRR ); - } else { - real_type hR = X[1] - X[0]; - real_type hRR = X[2] - X[1]; - real_type hRRR = X[3] - X[2]; - real_type hRRRR = X[4] - X[3]; - real_type SR = (Y[1] - Y[0])/hR; - real_type SRR = (Y[2] - Y[1])/hRR; - real_type SRRR = (Y[3] - Y[2])/hRRR; - real_type SRRRR = (Y[4] - Y[3])/hRRRR; - Z[0] = deriv2_5p_L( SR, hR, SRR, hRR, SRRR, hRRR, SRRRR, hRRRR ); - } - break; - case NATURAL_BC: - L[0] = 0; D[0] = 1; U[0] = 0; Z[0] = 0; - break; - case PARABOLIC_RUNOUT_BC: - L[0] = 0; D[0] = 1; U[0] = -1; Z[0] = 0; - break; - case NOT_A_KNOT: - { - real_type r = (X[1] - X[0])/(X[2] - X[1]); - // v0 - v1*(1+r) + r*v2 == 0 - L[0] = 0; - D[0] = 1; - U[0] = -(1+r); - UU = r; - Z[0] = 0; - } - break; - } - - switch ( bcn ) { - case EXTRAPOLATE_BC: - L[n] = 0; D[n] = 1; U[n] = 0; - if ( npts == 2 ) { - Z[n] = 0; - } else if ( npts == 3 ) { - real_type hL = X[n] - X[n-1]; - real_type hLL = X[n-1] - X[n-2]; - real_type SL = (Y[n] - Y[n-1])/hL; - real_type SLL = (Y[n-1] - Y[n-2])/hLL; - Z[n] = deriv2_3p_R( SL, hL, SLL, hLL ); - } else if ( npts == 4 ) { - real_type hL = X[n] - X[n-1]; - real_type hLL = X[n-1] - X[n-2]; - real_type hLLL = X[n-2] - X[n-3]; - real_type SL = (Y[n] - Y[n-1])/hL; - real_type SLL = (Y[n-1] - Y[n-2])/hLL; - real_type SLLL = (Y[n-2] - Y[n-3])/hLLL; - Z[n] = deriv2_4p_R( SL, hL, SLL, hLL, SLLL, hLLL ); - } else { - real_type hL = X[n] - X[n-1]; - real_type hLL = X[n-1] - X[n-2]; - real_type hLLL = X[n-2] - X[n-3]; - real_type hLLLL = X[n-3] - X[n-4]; - real_type SL = (Y[n] - Y[n-1])/hL; - real_type SLL = (Y[n-1] - Y[n-2])/hLL; - real_type SLLL = (Y[n-2] - Y[n-3])/hLLL; - real_type SLLLL = (Y[n-3] - Y[n-4])/hLLLL; - Z[n] = deriv2_5p_R( SL, hL, SLL, hLL, SLLL, hLLL, SLLLL, hLLLL ); - } - break; - case NATURAL_BC: - L[n] = 0; D[n] = 1; U[n] = 0; Z[n] = 0; - break; - case PARABOLIC_RUNOUT_BC: - L[n] = -1; D[n] = 1; U[n] = 0; Z[n] = 0; - break; - case NOT_A_KNOT: - { - real_type r = (X[n-1] - X[n-2])/(X[n] - X[n-1]); - // r*v0 - v1*(1+r) + v2 == 0 - U[n] = 0; - D[n] = 1; - L[n] = -(1+r); - LL = r; - Z[n] = 0; - } - break; - } - - if ( n > 2 ) { - Z[0] /= D[0]; - U[0] /= D[0]; - UU /= D[0]; - D[1] -= L[1] * U[0]; - U[1] -= L[1] * UU; - Z[1] -= L[1] * Z[0]; - i = 1; - do { - Z[i] /= D[i]; - U[i] /= D[i]; - D[i+1] -= L[i+1] * U[i]; - Z[i+1] -= L[i+1] * Z[i]; - } while ( ++i < n ); - - D[i] -= LL * U[i-2]; - Z[i] -= LL * Z[i-2]; - - Z[i] /= D[i]; - - do { - --i; - Z[i] -= U[i] * Z[i+1]; - } while ( i > 0 ); - - Z[0] -= UU * Z[2]; - } - - for ( i = 0; i < n; ++i ) { - real_type DX = X[i+1] - X[i]; - Yp[i] = (Y[i+1]-Y[i])/DX - (2*Z[i] + Z[i+1]) * (DX/6); - } - real_type DX2 = (X[n] - X[n-1])/2; - Yp[n] = Yp[n-1] + DX2 * (Z[n-1] + Z[n]); - - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSpline_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts, - CUBIC_SPLINE_TYPE_BC bc0, - CUBIC_SPLINE_TYPE_BC bcn - ) { - Utils::Malloc mem("CubicSpline_build"); - mem.allocate( size_t(4*npts) ); - real_type * L = mem( size_t( npts ) ); - real_type * D = mem( size_t( npts ) ); - real_type * U = mem( size_t( npts ) ); - real_type * Z = mem( size_t( npts ) ); - CubicSpline_build( X, Y, Yp, Z, L, D, U, npts, bc0, bcn ); - } - - #endif - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSpline::build() { - string msg = fmt::format("CubicSpline[{}]::build():", m_name ); - UTILS_ASSERT( - m_npts > 1, - "{} npts = {} not enought points\n", - msg, m_npts - ); - Utils::checkNaN( m_X, (msg+" X").c_str(), m_npts, __LINE__, __FILE__ ); - Utils::checkNaN( m_Y, (msg+" Y").c_str(), m_npts, __LINE__, __FILE__ ); - integer ibegin = 0; - integer iend = 0; - do { - // cerca intervallo monotono strettamente crescente - while ( ++iend < m_npts && m_X[iend-1] < m_X[iend] ) {} - CUBIC_SPLINE_TYPE_BC seg_bc0 = NOT_A_KNOT; - CUBIC_SPLINE_TYPE_BC seg_bcn = NOT_A_KNOT; - if ( ibegin == 0 ) seg_bc0 = m_bc0; - if ( iend == m_npts ) seg_bcn = m_bcn; - CubicSpline_build( - m_X+ibegin, - m_Y+ibegin, - m_Yp+ibegin, - iend - ibegin, - seg_bc0, seg_bcn - ); - ibegin = iend; - } while ( iend < m_npts ); - - Utils::checkNaN( m_Yp, (msg+" Yp").c_str(), m_npts, __LINE__, __FILE__ ); - } - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - #endif - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSpline::setup( GenericContainer const & gc ) { - /* - // gc["xdata"] - // gc["ydata"] - // - */ - string msg = fmt::format("CubicSpline[{}]::setup( gc ):", m_name ); - UTILS_ASSERT( gc.exists("xdata"), "{} missing `xdata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ydata"), "{} missing `y`data field!\n", msg ); - - GenericContainer const & gc_x = gc("xdata"); - GenericContainer const & gc_y = gc("ydata"); - - vec_real_type x, y; - { - std::string ff = fmt::format( "{}, field `xdata'", msg ); - gc_x.copyto_vec_real ( x, ff.c_str() ); - } - { - std::string ff = fmt::format( "{}, field `ydata'", msg ); - gc_y.copyto_vec_real ( y, ff.c_str() ); - } - if ( gc.exists("bc_begin") ) { - std::string const & bc = gc("bc_begin").get_string(); - if ( bc == "extrapolate" ) m_bc0 = EXTRAPOLATE_BC; - else if ( bc == "natural" ) m_bc0 = NATURAL_BC; - else if ( bc == "parabolic" ) m_bc0 = PARABOLIC_RUNOUT_BC; - else if ( bc == "not_a_knot" ) m_bc0 = NOT_A_KNOT; - else { - UTILS_ERROR( "{} unknow initial bc: {}\n", msg, bc ); - } - } else { - UTILS_WARNING( false, - "{}, missing field `bc_begin` using `extrapolate` as default value\n", msg - ); - } - - if ( gc.exists("bc_end") ) { - std::string const & bc = gc("bc_end").get_string(); - if ( bc == "extrapolate" ) m_bcn = EXTRAPOLATE_BC; - else if ( bc == "natural" ) m_bcn = NATURAL_BC; - else if ( bc == "parabolic" ) m_bcn = PARABOLIC_RUNOUT_BC; - else if ( bc == "not_a_knot" ) m_bcn = NOT_A_KNOT; - else { - UTILS_ERROR( "{} unknow final bc: {}\n", msg, bc ); - } - } else { - UTILS_WARNING( false, - "{}, missing field `bc_begin` using `extrapolate` as default value\n", msg - ); - } - this->build( x, y ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.rst.txt deleted file mode 100644 index a1dbd7d8..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.rst.txt +++ /dev/null @@ -1,115 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx: - -Program Listing for File SplineCubic.hxx -======================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubic.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ____ _ _ ____ _ _ - | / ___| _| |__ (_) ___/ ___| _ __ | (_)_ __ ___ - | | | | | | | '_ \| |/ __\___ \| '_ \| | | '_ \ / _ \ - | | |__| |_| | |_) | | (__ ___) | |_) | | | | | | __/ - | \____\__,_|_.__/|_|\___|____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - - namespace Splines { - - typedef enum { - EXTRAPOLATE_BC = 0, - NATURAL_BC, - PARABOLIC_RUNOUT_BC, - NOT_A_KNOT - } CUBIC_SPLINE_TYPE_BC; - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - void - CubicSpline_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts, - CUBIC_SPLINE_TYPE_BC bc0, - CUBIC_SPLINE_TYPE_BC bcn - ); - - void - CubicSpline_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - real_type * Ypp, - real_type * L, - real_type * D, - real_type * U, - integer npts, - CUBIC_SPLINE_TYPE_BC bc0, - CUBIC_SPLINE_TYPE_BC bcn - ); - - #endif - - class CubicSpline : public CubicSplineBase { - private: - CUBIC_SPLINE_TYPE_BC m_bc0, m_bcn; - public: - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using CubicSplineBase::build; - using CubicSplineBase::reserve; - #endif - - CubicSpline( string const & name = "CubicSpline" ) - : CubicSplineBase( name ) - , m_bc0( EXTRAPOLATE_BC ) - , m_bcn( EXTRAPOLATE_BC ) - {} - - ~CubicSpline() override {} - - void - setInitialBC( CUBIC_SPLINE_TYPE_BC bc0 ) - { m_bc0 = bc0; } - - void - setFinalBC( CUBIC_SPLINE_TYPE_BC bcn ) - { m_bcn = bcn; } - - unsigned type() const override { return CUBIC_TYPE; } - - // --------------------------- VIRTUALS ----------------------------------- - - void build() override; - void setup( GenericContainer const & gc ) override; - - }; - - } - - // EOF: SplineCubic.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.rst.txt deleted file mode 100644 index 441befce..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.rst.txt +++ /dev/null @@ -1,296 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc: - -Program Listing for File SplineCubicBase.cc -=========================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubicBase.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSplineBase::build( - real_type const * x, integer incx, - real_type const * y, integer incy, - real_type const * yp, integer incyp, - integer n - ) { - this->reserve( n ); - for ( size_t i = 0; i < size_t(n); ++i ) { - m_X[i] = x[i*size_t(incx)]; - m_Y[i] = y[i*size_t(incy)]; - m_Yp[i] = yp[i*size_t(incyp)]; - } - m_npts = n; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSplineBase::build( - vector const & x, - vector const & y, - vector const & yp - ) { - integer N = integer(x.size()); - if ( N > integer(y.size()) ) N = integer(y.size()); - if ( N > integer(yp.size()) ) N = integer(yp.size()); - this->build ( - &x.front(), 1, - &y.front(), 1, - &yp.front(), 1, - N - ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSplineBase::clear(void) { - if ( !m_external_alloc ) m_baseValue.free(); - m_npts = m_npts_reserved = 0; - m_external_alloc = false; - m_X = m_Y = m_Yp = nullptr; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSplineBase::reserve( integer n ) { - if ( m_external_alloc && n <= m_npts_reserved ) { - // nothing to do!, already allocated - } else { - m_npts_reserved = n; - m_baseValue.reallocate( size_t(3*n) ); - m_X = m_baseValue( size_t(n) ); - m_Y = m_baseValue( size_t(n) ); - m_Yp = m_baseValue( size_t(n) ); - m_external_alloc = false; - } - initLastInterval(); - m_npts = 0; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSplineBase::reserve_external( - integer n, - real_type *& p_x, - real_type *& p_y, - real_type *& p_dy - ) { - m_npts_reserved = n; - m_X = p_x; - m_Y = p_y; - m_Yp = p_dy; - m_external_alloc = true; - initLastInterval(); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - CubicSplineBase::id_eval( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] ) return m_Y[0]; - if ( x >= m_X[m_npts-1] ) return m_Y[m_npts-1]; - } - real_type base[4]; - Hermite3( x-m_X[i], m_X[i+1]-m_X[i], base ); - return base[0] * m_Y[i] + - base[1] * m_Y[i+1] + - base[2] * m_Yp[i] + - base[3] * m_Yp[i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - CubicSplineBase::operator () ( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_eval( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - CubicSplineBase::id_D( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] || x >= m_X[m_npts-1] ) return 0; - } - real_type base_D[4]; - Hermite3_D( x-m_X[i], m_X[i+1]-m_X[i], base_D ); - return base_D[0] * m_Y[i] + - base_D[1] * m_Y[i+1] + - base_D[2] * m_Yp[i] + - base_D[3] * m_Yp[i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - CubicSplineBase::D( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_D( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - CubicSplineBase::id_DD( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] || x >= m_X[m_npts-1] ) return 0; - } - real_type base_DD[4]; - Hermite3_DD( x-m_X[i], m_X[i+1]-m_X[i], base_DD ); - return base_DD[0] * m_Y[i] + - base_DD[1] * m_Y[i+1] + - base_DD[2] * m_Yp[i] + - base_DD[3] * m_Yp[i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - CubicSplineBase::DD( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_DD( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - CubicSplineBase::id_DDD( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] || x >= m_X[m_npts-1] ) return 0; - } - real_type base_DDD[4]; - Hermite3_DDD( x-m_X[i], m_X[i+1]-m_X[i], base_DDD ); - return base_DDD[0] * m_Y[i] + - base_DDD[1] * m_Y[i+1] + - base_DDD[2] * m_Yp[i] + - base_DDD[3] * m_Yp[i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - CubicSplineBase::DDD( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_DDD( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer // order - CubicSplineBase::coeffs( - real_type * const cfs, - real_type * const nodes, - bool transpose - ) const { - size_t n = size_t(m_npts > 0 ? m_npts-1 : 0); - for ( size_t i = 0; i < n; ++i ) { - nodes[i] = m_X[i]; - real_type H = m_X[i+1]-m_X[i]; - real_type DY = (m_Y[i+1]-m_Y[i])/H; - real_type a = m_Y[i]; - real_type b = m_Yp[i]; - real_type c = (3*DY-2*m_Yp[i]-m_Yp[i+1])/H; - real_type d = (m_Yp[i+1]+m_Yp[i]-2*DY)/(H*H); - if ( transpose ) { - cfs[4*i+3] = a; - cfs[4*i+2] = b; - cfs[4*i+1] = c; - cfs[4*i+0] = d; - } else { - cfs[i+3*n] = a; - cfs[i+2*n] = b; - cfs[i+1*n] = c; - cfs[i+0*n] = d; - } - } - return 4; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer - CubicSplineBase::order() const - { return 4; } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Implementation - void - CubicSplineBase::copySpline( CubicSplineBase const & S ) { - CubicSplineBase::reserve(S.m_npts); - m_npts = S.m_npts; - std::copy_n( S.m_X, m_npts, m_X ); - std::copy_n( S.m_Y, m_npts, m_Y ); - std::copy_n( S.m_Yp, m_npts, m_Yp ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSplineBase::setRange( real_type xmin, real_type xmax ) { - Spline::setRange( xmin, xmax ); - real_type recS = ( m_X[m_npts-1] - m_X[0] ) / (xmax - xmin); - real_type * iy = m_Y; - while ( iy < m_Y + m_npts ) *iy++ *= recS; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSplineBase::writeToStream( ostream_type & s ) const { - size_t nseg = size_t( m_npts > 0 ? m_npts - 1 : 0 ); - for ( size_t i = 0; i < nseg; ++i ) - fmt::print( s, - "segment N.{:4} X:[{},{}] Y:[{},{}] Yp:[{},{}] slope: {}\n", - i, m_X[i], m_X[i+1], m_Y[i], m_Y[i+1], m_Yp[i], m_Yp[i+1], - (m_Y[i+1]-m_Y[i])/(m_X[i+1]-m_X[i]) - ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.rst.txt deleted file mode 100644 index 058dfe02..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.rst.txt +++ /dev/null @@ -1,316 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc: - -Program Listing for File SplineHermite.cc -========================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineHermite.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - /*\ - | _ _ _ _ - | | | | | ___ _ __ _ __ ___ (_) |_ ___ - | | |_| |/ _ \ '__| '_ ` _ \| | __/ _ \ - | | _ | __/ | | | | | | | | || __/ - | |_| |_|\___|_| |_| |_| |_|_|\__\___| - \*/ - - void - Hermite3( real_type x, real_type H, real_type base[4] ) { - real_type X = x/H; - base[1] = X*X*(3-2*X); - base[0] = 1-base[1]; - base[2] = x*(X*(X-2)+1); - base[3] = x*X*(X-1); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Hermite3_D( real_type x, real_type H, real_type base_D[4] ) { - real_type X = x/H; - base_D[0] = 6.0*X*(X-1.0)/H; - base_D[1] = -base_D[0]; - base_D[2] = ((3*X-4)*X+1); - base_D[3] = X*(3*X-2); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Hermite3_DD( real_type x, real_type H, real_type base_DD[4] ) { - real_type X = x/H; - base_DD[0] = (12*X-6)/(H*H); - base_DD[1] = -base_DD[0]; - base_DD[2] = (6*X-4)/H; - base_DD[3] = (6*X-2)/H; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Hermite3_DDD( real_type, real_type H, real_type base_DDD[4] ) { - base_DDD[0] = 12/(H*H*H); - base_DDD[1] = -base_DDD[0]; - base_DDD[2] = 6/(H*H); - base_DDD[3] = base_DDD[2]; - } - - // -------------------------------------------------------------------------- - - void - Hermite5( real_type t, real_type h, real_type base[6] ) { - real_type t1 = h*h; - real_type t4 = t*t; - real_type t7 = h-t; - real_type t8 = t7*t7; - real_type t9 = t8*t7; - real_type t11 = t1*t1; - real_type t2 = 1/t11; - real_type t3 = 1/h; - real_type t13 = t3*t2; - real_type t14 = t4*t; - real_type t17 = t4*t4; - base[0] = t13*t9*(3.0*t*h+t1+6.0*t4); - base[1] = t13*(-15.0*h*t17+6.0*t17*t+10.0*t1*t14); - base[2] = t2*t9*t*(h+3*t); - base[3] = t2*(3*t-4*h)*t7*t14; - real_type t36 = t3/t1/2; - base[4] = t36*t9*t4; - base[5] = t36*t8*t14; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Hermite5_D( real_type t, real_type h, real_type base_D[6] ) { - real_type t1 = h-t; - real_type t2 = t1*t1; - real_type t3 = t*t; - real_type t5 = h*h; - real_type t6 = t5*t5; - real_type t4 = 1/t6; - real_type t7 = 1/h; - real_type t10 = 30.0*t3*t2*t7*t4; - real_type t11 = 5.0*t; - real_type t23 = t3*t3; - real_type t30 = t7/t5/2; - base_D[0] = -t10; - base_D[1] = t10; - base_D[2] = t4*(h-3.0*t)*(h+t11)*t2; - base_D[3] = t4*(t3*(28*t*h-12*t5)-15*t23); - base_D[4] = t30*(2*h-t11)*t2*t; - base_D[5] = t30*(3*h-t11)*t3*t1; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Hermite5_DD( real_type t, real_type h, real_type base_DD[6] ) { - real_type t1 = h-t; - real_type t2 = t*t1; - real_type t5 = h*h; - real_type t6 = t5*t5; - real_type t3 = 1/t6; - real_type t4 = 1/h; - real_type t11 = 60*(h-2*t)*t2*t4*t3; - real_type t26 = t*t; - real_type t31 = t4/t5; - base_DD[0] = -t11; - base_DD[1] = t11; - base_DD[2] = 12*t3*t1*(5*t-3*h)*t; - base_DD[3] = 12*t3*t2*(5*t-2*h); - base_DD[4] = t31*(10*t26+t5-8*h*t)*t1; - base_DD[5] = t31*(t26*(10*t-12*h)+3*t*t5); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Hermite5_DDD( real_type t, real_type h, real_type base_DDD[6] ) { - real_type t1 = h*h; - real_type t3 = h*t; - real_type t5 = t*t; - real_type t7 = 360*t3-60*t1-360*t5; - real_type t8 = t1*t1; - real_type t9 = 1/t8; - real_type t11 = 1/h; - real_type t10 = t11*t9; - real_type t14 = 180.0*t5; - real_type t22 = 30.0*t5; - real_type t25 = t11/t1; - base_DDD[0] = t7*t10; - base_DDD[1] = -base_DDD[0]; - base_DDD[2] = t9*(192*t3-36*t1-t14); - base_DDD[3] = t9*(168*t3-24*t1-t14); - base_DDD[4] = t25*(36*t3-9*t1-t22); - base_DDD[5] = t25*(3*t1-24*t3+t22); - - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Hermite5_DDDD( real_type t, real_type h, real_type base_DDDD[6] ) { - real_type t3 = 360.0*h-720.0*t; - real_type t4 = h*h; - real_type t5 = t4*t4; - real_type t6 = 1/t5; - real_type t8 = 1/h; - real_type t7 = t8*t6; - real_type t10 = 360*t; - real_type t16 = 60*t; - real_type t19 = t8/t4; - base_DDDD[0] = t7*t3; - base_DDDD[1] = -base_DDDD[0]; - base_DDDD[2] = t6*(192*h-t10); - base_DDDD[3] = t6*(168*h-t10); - base_DDDD[4] = t19*(36*h-t16); - base_DDDD[5] = t19*(t16-24*h); - - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Hermite5_DDDDD( real_type, real_type h, real_type base_DDDDD[6] ) { - real_type t1 = h*h; - real_type t2 = t1*t1; - real_type t3 = 1/t2; - real_type t4 = 1/h; - real_type t5 = 720.0*t4*t3; - real_type t10 = 60.0*t4/t1; - base_DDDDD[0] = -t5; - base_DDDDD[1] = t5; - base_DDDDD[2] = -360.0*t3; - base_DDDDD[3] = base_DDDDD[2]; - base_DDDDD[4] = -t10; - base_DDDDD[5] = t10; - } - - /* - // ____ _ _ _ - // | __ )(_) (_)_ __ ___ __ _ _ __ - // | _ \| | | | '_ \ / _ \/ _` | '__| - // | |_) | | | | | | | __/ (_| | | - // |____/|_|_|_|_| |_|\___|\__,_|_| - */ - - real_type - bilinear3( - real_type const p[4], - real_type const M[4][4], - real_type const q[4] - ) { - return p[0] * ( M[0][0]*q[0] + M[0][1]*q[1] + M[0][2]*q[2] + M[0][3]*q[3] ) + - p[1] * ( M[1][0]*q[0] + M[1][1]*q[1] + M[1][2]*q[2] + M[1][3]*q[3] ) + - p[2] * ( M[2][0]*q[0] + M[2][1]*q[1] + M[2][2]*q[2] + M[2][3]*q[3] ) + - p[3] * ( M[3][0]*q[0] + M[3][1]*q[1] + M[3][2]*q[2] + M[3][3]*q[3] ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - bilinear5( - real_type const p[6], - real_type const M[6][6], - real_type const q[6] - ) { - return p[0] * ( M[0][0]*q[0] + M[0][1]*q[1] + M[0][2]*q[2] + M[0][3]*q[3] + M[0][4]*q[4] + M[0][5]*q[5]) + - p[1] * ( M[1][0]*q[0] + M[1][1]*q[1] + M[1][2]*q[2] + M[1][3]*q[3] + M[1][4]*q[4] + M[1][5]*q[5]) + - p[2] * ( M[2][0]*q[0] + M[2][1]*q[1] + M[2][2]*q[2] + M[2][3]*q[3] + M[2][4]*q[4] + M[2][5]*q[5]) + - p[3] * ( M[3][0]*q[0] + M[3][1]*q[1] + M[3][2]*q[2] + M[3][3]*q[3] + M[3][4]*q[4] + M[3][5]*q[5]) + - p[4] * ( M[4][0]*q[0] + M[4][1]*q[1] + M[4][2]*q[2] + M[4][3]*q[3] + M[4][4]*q[4] + M[4][5]*q[5]) + - p[5] * ( M[5][0]*q[0] + M[5][1]*q[1] + M[5][2]*q[2] + M[5][3]*q[3] + M[5][4]*q[4] + M[5][5]*q[5]); - } - - #endif - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - HermiteSpline::build( - real_type const *, integer, - real_type const *, integer, - integer - ) { - UTILS_ERROR( - "HermiteSpline[{}]::build(x,incx,y,incy,n) cannot be used\n", m_name - ); - } - - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - - void - HermiteSpline::setup( GenericContainer const & gc ) { - /* - // gc["xdata"] - // gc["ydata"] - // - */ - string msg = fmt::format("HermiteSpline[{}]::setup( gc ):", m_name ); - UTILS_ASSERT( gc.exists("xdata"), "{} missing `xdata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ydata"), "{} missing `ydata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ypdata"), "{} missing `ypdata` field!\n", msg ); - - GenericContainer const & gc_x = gc("xdata"); - GenericContainer const & gc_y = gc("ydata"); - GenericContainer const & gc_yp = gc("ypdata"); - - vec_real_type x, y, yp; - { - std::string ff = fmt::format( "{}, field `xdata'", msg ); - gc_x.copyto_vec_real( x, ff.c_str() ); - } - { - std::string ff = fmt::format( "{}, field `ydata'", msg ); - gc_y.copyto_vec_real( y, ff.c_str() ); - } - { - std::string ff = fmt::format( "{}, field `ypdata'", msg ); - gc_yp.copyto_vec_real( yp, ff.c_str() ); - } - this->build( x, y, yp ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.rst.txt deleted file mode 100644 index d4e68ffb..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.rst.txt +++ /dev/null @@ -1,77 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx: - -Program Listing for File SplineHermite.hxx -========================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineHermite.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | _ _ _ _ ____ _ _ - | | | | | ___ _ __ _ __ ___ (_) |_ ___/ ___| _ __ | (_)_ __ ___ - | | |_| |/ _ \ '__| '_ ` _ \| | __/ _ \___ \| '_ \| | | '_ \ / _ \ - | | _ | __/ | | | | | | | | || __/___) | |_) | | | | | | __/ - | |_| |_|\___|_| |_| |_| |_|_|\__\___|____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - - namespace Splines { - - class HermiteSpline : public CubicSplineBase { - public: - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using CubicSplineBase::build; - using CubicSplineBase::reserve; - #endif - - HermiteSpline( string const & name = "HermiteSpline" ) - : CubicSplineBase( name ) - {} - - ~HermiteSpline() override {} - - unsigned type() const override { return HERMITE_TYPE; } - - // --------------------------- VIRTUALS ----------------------------------- - - void build() override {} // nothing to do - - // block method! - void - build( - real_type const *, integer, - real_type const *, integer, - integer - ) override; - - void setup( GenericContainer const & gc ) override; - - }; - - } - - // EOF: SplineHermite.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.rst.txt deleted file mode 100644 index 64889e6a..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.rst.txt +++ /dev/null @@ -1,197 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc: - -Program Listing for File SplineLinear.cc -======================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineLinear.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - real_type - LinearSpline::id_eval( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] ) return m_Y[0]; - if ( x >= m_X[m_npts-1] ) return m_Y[m_npts-1]; - } - real_type s = (x-m_X[i])/(m_X[i+1] - m_X[i]); - return (1-s)*m_Y[i] + s * m_Y[i+1]; - } - - real_type - LinearSpline::operator () ( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_eval( idx, x ); - } - - real_type - LinearSpline::id_D( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] || x >= m_X[m_npts-1] ) return 0; - } - return ( m_Y[i+1] - m_Y[i] ) / ( m_X[i+1] - m_X[i] ); - } - - real_type - LinearSpline::D( real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] || x >= m_X[m_npts-1] ) return 0; - } - integer idx = this->search( x ); // eval idx can modify x - return this->id_D( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - LinearSpline::reserve_external( - integer n, - real_type *& p_x, - real_type *& p_y - ) { - if ( !m_external_alloc ) m_baseValue.free(); - m_npts = 0; - m_npts_reserved = n; - m_external_alloc = true; - m_X = p_x; - m_Y = p_y; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - LinearSpline::reserve( integer n ) { - if ( m_external_alloc && n <= m_npts_reserved ) { - // nothing to do!, already allocated - } else { - m_baseValue.reallocate( size_t(2*n) ); - m_npts_reserved = n; - m_external_alloc = false; - m_X = m_baseValue( size_t(n) ); - m_Y = m_baseValue( size_t(n) ); - } - initLastInterval(); - m_npts = 0; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - LinearSpline::clear(void) { - if ( !m_external_alloc ) m_baseValue.free(); - m_npts = m_npts_reserved = 0; - m_external_alloc = false; - m_X = m_Y = nullptr; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - LinearSpline::writeToStream( ostream_type & s ) const { - integer nseg = m_npts > 0 ? m_npts - 1 : 0; - for ( integer i = 0; i < nseg; ++i ) - fmt::print( s, - "segment N.{:4} X:[{},{}] Y:[{},{}] slope: {}\n", - i, m_X[i], m_X[i+1], m_Y[i], m_Y[i+1], - (m_Y[i+1]-m_Y[i])/(m_X[i+1]-m_X[i]) - ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer // order - LinearSpline::coeffs( - real_type * const cfs, - real_type * const nodes, - bool transpose - ) const { - integer n = m_npts > 0 ? m_npts-1 : 0; - for ( integer i = 0; i < n; ++i ) { - nodes[i] = m_X[i]; - real_type a = m_Y[i]; - real_type b = (m_Y[i+1]-m_Y[i])/(m_X[i+1]-m_X[i]); - if ( transpose ) { - cfs[2*i+1] = a; - cfs[2*i+0] = b; - } else { - cfs[n+i] = a; - cfs[i] = b; - } - } - return 2; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer - LinearSpline::order( ) const { return 2; } - - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - LinearSpline::setup( GenericContainer const & gc ) { - /* - // gc["xdata"] - // gc["ydata"] - // - */ - string msg = fmt::format("LinearSpline[{}]::setup( gc ):", m_name ); - UTILS_ASSERT( gc.exists("xdata"), "{} missing `xdata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ydata"), "{} missing `ydata` field!\n", msg ); - - GenericContainer const & gc_x = gc("xdata"); - GenericContainer const & gc_y = gc("ydata"); - - vec_real_type x, y; - { - std::string ff = fmt::format( "{}, field `xdata'", msg ); - gc_x.copyto_vec_real ( x, ff.c_str() ); - } - { - std::string ff = fmt::format( "{}, field `ydata'", msg ); - gc_y.copyto_vec_real ( y, ff.c_str() ); - } - this->build( x, y ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.rst.txt deleted file mode 100644 index a030a03b..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.rst.txt +++ /dev/null @@ -1,107 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx: - -Program Listing for File SplineLinear.hxx -========================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineLinear.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | _ _ ____ _ _ - | | | (_)_ __ ___ __ _ _ __/ ___| _ __ | (_)_ __ ___ - | | | | | '_ \ / _ \/ _` | '__\___ \| '_ \| | | '_ \ / _ \ - | | |___| | | | | __/ (_| | | ___) | |_) | | | | | | __/ - | |_____|_|_| |_|\___|\__,_|_| |____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - - namespace Splines { - - class LinearSpline : public Spline { - Utils::Malloc m_baseValue; - bool m_external_alloc; - - public: - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using Spline::build; - #endif - - LinearSpline( string const & name = "LinearSpline" ) - : Spline(name) - , m_baseValue( name+"_memory") - , m_external_alloc(false) - { - m_curve_extended_constant = true; // by default linear spline extend constant - } - - ~LinearSpline() override {} - - void - reserve_external( - integer n, - real_type *& p_x, - real_type *& p_y - ); - - // --------------------------- VIRTUALS ----------------------------------- - - real_type operator () ( real_type x ) const override; - real_type D( real_type x ) const override; - real_type DD( real_type ) const override { return 0; } - real_type DDD( real_type ) const override { return 0; } - - real_type id_eval( integer ni, real_type x ) const override; - real_type id_D( integer, real_type ) const override; - real_type id_DD( integer, real_type ) const override { return 0; } - real_type id_DDD( integer, real_type ) const override { return 0; } - - void writeToStream( ostream_type & s ) const override; - unsigned type() const override { return LINEAR_TYPE; } - - // --------------------------- VIRTUALS ----------------------------------- - - void reserve( integer npts ) override; - - void build() override {} - - void clear() override; - - integer // order - coeffs( - real_type * const cfs, - real_type * const nodes, - bool transpose = false - ) const override; - - integer order() const override; - void setup( GenericContainer const & gc ) override; - - }; - - } - - // EOF: SplineLinbear.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.rst.txt deleted file mode 100644 index 6806de67..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.rst.txt +++ /dev/null @@ -1,308 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc: - -Program Listing for File SplinePchip.cc -======================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinePchip.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include "SplinesUtils.hh" - - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - typedef enum { - region_A = 0, - region_B, - region_C, - region_D, - region_E, - region_M - } REGION_ABCDEM; - - static - REGION_ABCDEM - get_region( real_type alpha, real_type beta ) { - // assuming alpha >= 0, beta >= 0 - real_type apb = alpha+beta; - if ( apb <= 3 ) return region_M; - real_type r = alpha * alpha + beta * beta + alpha * beta - 6*apb + 9; - if ( r <= 0 ) return region_M; - if ( apb <= 4 ) { - if ( beta >= alpha ) return region_A; - else return region_E; - } - if ( alpha >= 3 && beta >= 3 ) return region_C; - if ( beta >= alpha ) return region_B; - else return region_D; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - inline - real_type - max_abs( real_type a, real_type b ) { - real_type res = std::abs(a); - if ( res < std::abs(b) ) res = std::abs(b); - return res; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - inline - real_type - min_abs( real_type a, real_type b ) { - real_type res = std::abs(a); - if ( res > std::abs(b) ) res = std::abs(b); - return res; - } - - /* - // ____ _ _ ____ _ _ - // | _ \ ___| |__ (_)_ __/ ___| _ __ | (_)_ __ ___ - // | |_) / __| '_ \| | '_ \___ \| '_ \| | | '_ \ / _ \ - // | __/ (__| | | | | |_) |__) | |_) | | | | | | __/ - // |_| \___|_| |_|_| .__/____/| .__/|_|_|_| |_|\___| - // |_| |_| - */ - - static - inline - int - signTest( real_type const a, real_type const b ) { - int sa = 0; - int sb = 0; - if ( a > 0 ) sa = 1; - else if ( a < 0 ) sa = -1; - if ( b > 0 ) sb = 1; - else if ( b < 0 ) sb = -1; - return sa*sb; - } - - void - Pchip_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts - ) { - - size_t n = npts > 0 ? size_t( npts - 1 ) : 0; - - integer ierr = 0; - - // function definition is ok, go on. - real_type h1 = X[1] - X[0]; - real_type del1 = (Y[1]-Y[0])/h1; - real_type dsave = del1; - - // special case n=2 -- use linear interpolation. - if ( n == 1 ) { Yp[0] = Yp[1] = del1; return; } - - real_type h2 = X[2] - X[1]; - real_type del2 = (Y[2]-Y[1])/h2; - - // Set Yp[0] via non-centered three-point formula, adjusted to be shape-preserving. - real_type hsum = h1 + h2; - real_type w1 = (h1 + hsum)/hsum; - real_type w2 = -h1/hsum; - Yp[0] = w1*del1 + w2*del2; - real_type dmin, dmax; - if ( signTest(Yp[0],del1) <= 0 ) { - Yp[0] = 0; - } else if ( signTest(del1,del2) < 0 ) { - // NEED DO THIS CHECK ONLY IF MONOTONICITY SWITCHES. - dmax = 3*del1; - if ( std::abs(Yp[0]) > std::abs(dmax) ) Yp[0] = dmax; - } - - // loop through interior points. - for ( size_t i = 1; i < n; ++i ) { - if ( i > 1 ) { - h1 = h2; - h2 = X[i+1] - X[i]; - hsum = h1 + h2; - del1 = del2; - del2 = (Y[i+1] - Y[i])/h2; - } - // set Yp[i]=0 unless data are strictly monotonic. - Yp[i] = 0; - // count number of changes in direction of monotonicity. - switch ( signTest(del1,del2) ) { - case -1: - if ( Utils::isZero(del2) ) break; - if ( signTest(dsave,del2) < 0 ) ++ierr; - dsave = del2; - break; - case 0: - ++ierr; - dsave = del2; - break; - case 1: // use brodlie modification of butland formula. - w1 = (1+h1/hsum)/3; - w2 = (1+h2/hsum)/3; - dmax = max_abs( del1, del2 ); - dmin = min_abs( del1, del2 ); - real_type drat1 = del1/dmax; - real_type drat2 = del2/dmax; - Yp[i] = dmin/(w1*drat1 + w2*drat2); - break; - } - } - // set Yp[n] via non-centered three-point formula, adjusted to be shape-preserving. - w1 = -h2/hsum; - w2 = (h2 + hsum)/hsum; - Yp[n] = w1*del1 + w2*del2; - if ( signTest(Yp[n],del2) <= 0 ) { - Yp[n] = 0; - } else if ( signTest(del1,del2) < 0 ) { - // need do this check only if monotonicity switches. - dmax = 3*del2; - if ( abs(Yp[n]) > abs(dmax) ) Yp[n] = dmax; - } - // cout << "ierr = " << ierr << '\n'; - } - - static // non usata per ora - void - Pchip_build_new( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts - ) { - - first_derivative_build( X, Y, Yp, npts ); - - size_t n = npts > 0 ? size_t( npts - 1 ) : 0; - - // loop through interior points. - for ( size_t i = 1; i < n ; ++i ) { - - real_type hL = X[i+0] - X[i-1]; - real_type hR = X[i+1] - X[i+0]; - - real_type SL = (Y[i+0]-Y[i-1])/hL; - real_type SR = (Y[i+1]-Y[i+0])/hR; - - real_type fp = Yp[i]; - - real_type sigma = 0; - if ( SL*SR > 0 ) sigma = SR > 0 ? 1 : -1; - real_type absSL = SL < 0 ? -SL: SL; - real_type absSR = SR < 0 ? -SR: SR; - real_type Delta = 3*( absSL < absSR ? absSL : absSR ); - if ( sigma > 0 ) { - if ( fp < 0 ) fp = 0; - if ( fp > Delta ) fp = Delta; - } else if ( sigma < 0 ) { - if ( fp > 0 ) fp = 0; - if ( fp < -Delta ) fp = -Delta; - } else { - fp = 0; - } - Yp[i] = fp; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - PchipSpline::build() { - string msg = fmt::format("PchipSpline[{}]::build():", m_name ); - UTILS_ASSERT( - m_npts > 1, - "{} npts = {} not enought points\n", - msg, m_npts - ); - Utils::checkNaN( m_X, (msg+" X").c_str(), m_npts, __LINE__, __FILE__ ); - Utils::checkNaN( m_Y, (msg+" Y").c_str(), m_npts, __LINE__, __FILE__ ); - integer ibegin = 0; - integer iend = 0; - do { - // cerca intervallo monotono strettamente crescente - while ( ++iend < m_npts && m_X[iend-1] < m_X[iend] ) {} - Pchip_build( - m_X+ibegin, - m_Y+ibegin, - m_Yp+ibegin, - iend-ibegin - ); - ibegin = iend; - } while ( iend < m_npts ); - - Utils::checkNaN( m_Yp, (msg+" Yp").c_str(), m_npts, __LINE__, __FILE__ ); - } - - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - PchipSpline::setup( GenericContainer const & gc ) { - /* - // gc["xdata"] - // gc["ydata"] - // - */ - string msg = fmt::format("PchipSpline[{}]::setup( gc ):", m_name ); - UTILS_ASSERT( gc.exists("xdata"), "{} missing `xdata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ydata"), "{} missing `ydata` field!\n", msg ); - - GenericContainer const & gc_x = gc("xdata"); - GenericContainer const & gc_y = gc("ydata"); - - vec_real_type x, y; - { - std::string ff = fmt::format( "{}, field `xdata'", msg ); - gc_x.copyto_vec_real ( x, ff.c_str() ); - } - { - std::string ff = fmt::format( "{}, field `ydata'", msg ); - gc_y.copyto_vec_real ( y, ff.c_str() ); - } - this->build( x, y ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.rst.txt deleted file mode 100644 index 88aa68ea..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.rst.txt +++ /dev/null @@ -1,75 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx: - -Program Listing for File SplinePchip.hxx -======================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinePchip.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ____ _ _ ____ _ _ - | | _ \ ___| |__ (_)_ __/ ___| _ __ | (_)_ __ ___ - | | |_) / __| '_ \| | '_ \___ \| '_ \| | | '_ \ / _ \ - | | __/ (__| | | | | |_) |__) | |_) | | | | | | __/ - | |_| \___|_| |_|_| .__/____/| .__/|_|_|_| |_|\___| - | |_| |_| - \*/ - - namespace Splines { - void - Pchip_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts - ); - - class PchipSpline : public CubicSplineBase { - public: - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using CubicSplineBase::build; - using CubicSplineBase::reserve; - #endif - - PchipSpline( string const & name = "PchipSpline" ) - : CubicSplineBase( name ) - {} - - ~PchipSpline() override {} - - unsigned type() const override { return PCHIP_TYPE; } - - // --------------------------- VIRTUALS ----------------------------------- - - void build() override; - void setup( GenericContainer const & gc ) override; - - }; - - } - - // EOF: SplinePchip.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.rst.txt deleted file mode 100644 index 414ca372..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.rst.txt +++ /dev/null @@ -1,335 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc: - -Program Listing for File SplineQuintic.cc -========================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuintic.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include "SplinesUtils.hh" - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /*\ - Sistema lineare da risolvere - - D U - L D U - L D U - L D U - ..... - L D U - L D U - L D - - \*/ - - static - void - QuinticSpline_Yppp_continuous( - real_type const * X, - real_type const * Y, - real_type const * Yp, - real_type * Ypp, - integer npts, - bool setbc - ) { - - size_t n = size_t(npts > 0 ? npts-1 : 0); - - Utils::Malloc mem("QuinticSpline_Yppp_continuous"); - mem.allocate( size_t(3*(n+1)) ); - real_type * L = mem( size_t( n+1 ) ); - real_type * D = mem( size_t( n+1 ) ); - real_type * U = mem( size_t( n+1 ) ); - real_type * Z = Ypp; - - size_t i; - for ( i = 1; i < n; ++i ) { - real_type hL = X[i] - X[i-1]; - real_type hL2 = hL*hL; - real_type hL3 = hL*hL2; - real_type hR = X[i+1] - X[i]; - real_type hR2 = hR*hR; - real_type hR3 = hR*hR2; - real_type DL = 60*(Y[i]-Y[i-1])/hL3; - real_type DR = 60*(Y[i+1]-Y[i])/hR3; - real_type DDL = (36*Yp[i]+24*Yp[i-1])/hL2; - real_type DDR = (36*Yp[i]+24*Yp[i+1])/hR2; - L[i] = -3/hL; - D[i] = 9/hL+9/hR; - U[i] = -3/hR; - Z[i] = DR-DL+DDL-DDR; - } - L[0] = U[0] = 0; D[0] = 1; - L[n] = U[n] = 0; D[n] = 1; - if ( setbc ) { - { - real_type hL = X[1] - X[0]; - real_type hR = X[2] - X[1]; - real_type SL = (Y[1]-Y[0])/hL; - real_type SR = (Y[2]-Y[1])/hR; - real_type dp0 = Yp[1]; - real_type dpL = Yp[0]; - real_type dpR = Yp[2]; - Z[0] = second_deriv3p_L( SL, hL, SR, hR, dpL, dp0, dpR ); - } - { - real_type hL = X[n-1] - X[n-2]; - real_type hR = X[n] - X[n-1]; - real_type SL = (Y[n-1]-Y[n-2])/hL; - real_type SR = (Y[n]-Y[n-1])/hR; - real_type dp0 = Yp[n-1]; - real_type dpL = Yp[n-2]; - real_type dpR = Yp[n]; - Z[n] = second_deriv3p_R( SL, hL, SR, hR, dpL, dp0, dpR ); - } - } - - i = 0; - do { - Z[i] /= D[i]; - U[i] /= D[i]; - D[i+1] -= L[i+1] * U[i]; - Z[i+1] -= L[i+1] * Z[i]; - } while ( ++i < n ); - - Z[i] /= D[i]; - - do { - --i; - Z[i] -= U[i] * Z[i+1]; - } while ( i > 0 ); - } - - static - void - QuinticSpline_Ypp_build( - real_type const * X, - real_type const * Y, - real_type const * Yp, - real_type * Ypp, - integer npts - ) { - - size_t n = size_t(npts > 0 ? npts-1 : 0); - - if ( n == 1 ) { Ypp[0] = Ypp[1] = 0; return; } - - { - real_type hL = X[1] - X[0]; - real_type hR = X[2] - X[1]; - real_type SL = (Y[1] - Y[0])/hL; - real_type SR = (Y[2] - Y[1])/hR; - //Ypp[0] = (2*SL-SR)*al+SL*be; - //Ypp[0] = second_deriv3p_L( SL, hL, SR, hR, Yp[0] ); - Ypp[0] = second_deriv3p_L( SL, hL, SR, hR, Yp[0], Yp[1], Yp[2] ); - } - { - real_type hL = X[n-1] - X[n-2]; - real_type hR = X[n] - X[n-1]; - real_type SL = (Y[n-1] - Y[n-2])/hL; - real_type SR = (Y[n] - Y[n-1])/hR; - //Ypp[n] = (2*SR-SL)*be+SR*al; - //Ypp[n] = second_deriv3p_R( SL, hL, SR, hR, Yp[n] ); - Ypp[n] = second_deriv3p_R( SL, hL, SR, hR, Yp[n-2], Yp[n-1], Yp[n] ); - } - - size_t i; - for ( i = 1; i < n; ++i ) { - real_type hL = X[i] - X[i-1]; - real_type hR = X[i+1] - X[i]; - real_type SL = (Y[i] - Y[i-1])/hL; - real_type SR = (Y[i+1] - Y[i])/hR; - //Ypp[i] = second_deriv3p_C( SL, hL, SR, hR, Yp[i] ); - real_type ddC = second_deriv3p_C( SL, hL, SR, hR, Yp[i-1], Yp[i], Yp[i+1] ); - if ( i > 1 ) { - real_type hLL = X[i-1] - X[i-2]; - real_type SLL = (Y[i-1] - Y[i-2])/hLL; - //real_type dd = second_deriv3p_R( SLL, hLL, SL, hR, Yp[i] ); - real_type ddL = second_deriv3p_R( SLL, hLL, SL, hR, Yp[i-2], Yp[i-1], Yp[i] ); - if ( ddL * ddC < 0 ) ddC = 0; - else if ( std::abs(ddL) < std::abs(ddC) ) ddC = ddL; - } - if ( i < n-1 ) { - real_type hRR = X[i+2] - X[i+1]; - real_type SRR = (Y[i+2] - Y[i+1])/hRR; - //real_type dd = second_deriv3p_L( SR, hR, SRR, hRR, Yp[i] ); - real_type ddR = second_deriv3p_L( SR, hR, SRR, hRR, Yp[i], Yp[i+1], Yp[i+2] ); - if ( ddR * ddC < 0 ) ddC = 0; - else if ( std::abs(ddR) < std::abs(ddC) ) ddC = ddR; - } - Ypp[i] = ddC; - } - } - - /*\ - | ___ _ _ _ ____ _ _ - | / _ \ _ _(_)_ __ | |_(_) ___/ ___| _ __ | (_)_ __ ___ - | | | | | | | | | '_ \| __| |/ __\___ \| '_ \| | | '_ \ / _ \ - | | |_| | |_| | | | | | |_| | (__ ___) | |_) | | | | | | __/ - | \__\_\\__,_|_|_| |_|\__|_|\___|____/| .__/|_|_|_| |_|\___| - | |_| - | - \*/ - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - void - Quintic_build( - QUINTIC_SPLINE_TYPE q_sub_type, - real_type const * X, - real_type const * Y, - real_type * Yp, - real_type * Ypp, - integer npts - ) { - switch ( q_sub_type ) { - case CUBIC_QUINTIC: - { - size_t n = size_t(npts > 0 ? npts-1 : 0); - - Utils::Malloc mem("QuinticSpline_Yppp_continuous"); - mem.allocate( size_t(3*(n+1)) ); - real_type * L = mem( size_t( n+1 ) ); - real_type * D = mem( size_t( n+1 ) ); - real_type * U = mem( size_t( n+1 ) ); - CubicSpline_build( - X, Y, Yp, Ypp, L, D, U, npts, EXTRAPOLATE_BC, EXTRAPOLATE_BC - ); - mem.free(); - QuinticSpline_Yppp_continuous( X, Y, Yp, Ypp, npts, false ); - } - return; - case PCHIP_QUINTIC: - Pchip_build( X, Y, Yp, npts ); - break; - case AKIMA_QUINTIC: - Akima_build( X, Y, Yp, npts ); - break; - case BESSEL_QUINTIC: - Bessel_build( X, Y, Yp, npts ); - break; - } - QuinticSpline_Ypp_build( X, Y, Yp, Ypp, npts ); - } - - #endif - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - QuinticSpline::build() { - string msg = fmt::format("QuinticSpline[{}]::build():", m_name ); - UTILS_ASSERT( - m_npts > 1, - "{} npts = {} not enought points\n", - msg, m_npts - ); - Utils::checkNaN( m_X, (msg+" X").c_str(), m_npts, __LINE__, __FILE__ ); - Utils::checkNaN( m_Y, (msg+" Y").c_str(), m_npts, __LINE__, __FILE__ ); - integer ibegin = 0; - integer iend = 0; - do { - // cerca intervallo monotono strettamente crescente - while ( ++iend < m_npts && m_X[iend-1] < m_X[iend] ) {} - Quintic_build( - m_q_sub_type, - m_X+ibegin, m_Y+ibegin, - m_Yp+ibegin, m_Ypp+ibegin, - iend - ibegin - ); - ibegin = iend; - } while ( iend < m_npts ); - - Utils::checkNaN( m_Yp, (msg+" Yp").c_str(), m_npts, __LINE__, __FILE__ ); - Utils::checkNaN( m_Ypp, (msg+" Ypp").c_str(), m_npts, __LINE__, __FILE__ ); - } - - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - QuinticSpline::setup( GenericContainer const & gc ) { - string msg = fmt::format("QuinticSpline[{}]::setup( gc ):", m_name ); - /* - // gc["xdata"] - // gc["ydata"] - // - */ - UTILS_ASSERT( gc.exists("xdata"), "{} missing `xdata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ydata"), "{} missing `ydata` field!\n", msg ); - - GenericContainer const & gc_x = gc("xdata"); - GenericContainer const & gc_y = gc("ydata"); - - vec_real_type x, y; - { - std::string ff = fmt::format( "{}, field `xdata'", msg ); - gc_x.copyto_vec_real ( x, ff.c_str() ); - } - { - std::string ff = fmt::format( "{}, field `ydata'", msg ); - gc_y.copyto_vec_real ( y, ff.c_str() ); - } - if ( gc.exists("spline_sub_type") ) { - std::string const & st = gc("spline_sub_type").get_string(); - if ( st == "cubic" ) m_q_sub_type = CUBIC_QUINTIC; - else if ( st == "pchip" ) m_q_sub_type = PCHIP_QUINTIC; - else if ( st == "akima" ) m_q_sub_type = AKIMA_QUINTIC; - else if ( st == "bessel" ) m_q_sub_type = BESSEL_QUINTIC; - else { - UTILS_ERROR( "{} unknow sub type: {}\n", msg, st ); - } - } else { - UTILS_WARNING( false, - "{}, missing field `spline_sub_type` using `cubic` as default value\n", msg - ); - } - this->build( x, y ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.rst.txt deleted file mode 100644 index 9b9be226..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.rst.txt +++ /dev/null @@ -1,79 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx: - -Program Listing for File SplineQuintic.hxx -========================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuintic.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ___ _ _ _ ____ _ _ - | / _ \ _ _(_)_ __ | |_(_) ___/ ___| _ __ | (_)_ __ ___ - | | | | | | | | | '_ \| __| |/ __\___ \| '_ \| | | '_ \ / _ \ - | | |_| | |_| | | | | | |_| | (__ ___) | |_) | | | | | | __/ - | \__\_\\__,_|_|_| |_|\__|_|\___|____/| .__/|_|_|_| |_|\___| - | |_| - | - \*/ - - namespace Splines { - - typedef enum { - CUBIC_QUINTIC = 0, - PCHIP_QUINTIC, - AKIMA_QUINTIC, - BESSEL_QUINTIC - } QUINTIC_SPLINE_TYPE; - - class QuinticSpline : public QuinticSplineBase { - QUINTIC_SPLINE_TYPE m_q_sub_type; - public: - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using QuinticSplineBase::build; - using QuinticSplineBase::reserve; - #endif - - QuinticSpline( string const & name = "Spline" ) - : QuinticSplineBase( name ) - , m_q_sub_type(CUBIC_QUINTIC) - {} - - ~QuinticSpline() override {} - - void - setQuinticType( QUINTIC_SPLINE_TYPE qt ) - { m_q_sub_type = qt; } - - // --------------------------- VIRTUALS ----------------------------------- - void build() override; - void setup( GenericContainer const & gc ) override; - - }; - - } - - // EOF: SplineQuintic.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.rst.txt deleted file mode 100644 index d1804013..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.rst.txt +++ /dev/null @@ -1,314 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc: - -Program Listing for File SplineQuinticBase.cc -============================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuinticBase.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using namespace std; // load standard namspace - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - QuinticSplineBase::reserve_external( - integer n, - real_type * & p_X, - real_type * & p_Y, - real_type * & p_Yp, - real_type * & p_Ypp - ) { - if ( !m_external_alloc ) m_baseValue.free(); - m_npts = 0; - m_npts_reserved = n; - m_external_alloc = true; - m_X = p_X; - m_Y = p_Y; - m_Yp = p_Yp; - m_Ypp = p_Ypp; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - QuinticSplineBase::reserve( integer n ) { - if ( m_external_alloc && n <= m_npts_reserved ) { - // nothing to do!, already allocated - } else { - m_baseValue.reallocate( size_t(4*n) ); - m_npts_reserved = n; - m_external_alloc = false; - m_X = m_baseValue( size_t(n) ); - m_Y = m_baseValue( size_t(n) ); - m_Yp = m_baseValue( size_t(n) ); - m_Ypp = m_baseValue( size_t(n) ); - } - initLastInterval(); - m_npts = 0; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - QuinticSplineBase::clear(void) { - if ( !m_external_alloc ) m_baseValue.free(); - m_npts = m_npts_reserved = 0; - m_external_alloc = false; - m_X = m_Y = m_Yp = m_Ypp = nullptr; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::id_eval( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] ) return m_Y[0]; - if ( x >= m_X[m_npts-1] ) return m_Y[m_npts-1]; - } - real_type base[6]; - real_type x0 = m_X[i]; - real_type H = m_X[i+1] - x0; - Hermite5( x-x0, H, base ); - return base[0] * m_Y[i] + base[1] * m_Y[i+1] + - base[2] * m_Yp[i] + base[3] * m_Yp[i+1] + - base[4] * m_Ypp[i] + base[5] * m_Ypp[i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::operator () ( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_eval( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::id_D( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] || x >= m_X[m_npts-1] ) return 0; - } - real_type base_D[6]; - real_type x0 = m_X[i]; - real_type H = m_X[i+1] - x0; - Hermite5_D( x-x0, H, base_D ); - return base_D[0] * m_Y[i] + base_D[1] * m_Y[i+1] + - base_D[2] * m_Yp[i] + base_D[3] * m_Yp[i+1] + - base_D[4] * m_Ypp[i] + base_D[5] * m_Ypp[i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::D( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_D( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::id_DD( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] || x >= m_X[m_npts-1] ) return 0; - } - real_type base_DD[6]; - real_type x0 = m_X[i]; - real_type H = m_X[i+1] - x0; - Hermite5_DD( x-x0, H, base_DD ); - return base_DD[0] * m_Y[i] + base_DD[1] * m_Y[i+1] + - base_DD[2] * m_Yp[i] + base_DD[3] * m_Yp[i+1] + - base_DD[4] * m_Ypp[i] + base_DD[5] * m_Ypp[i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::DD( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_DD( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::id_DDD( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] || x >= m_X[m_npts-1] ) return 0; - } - real_type base_DDD[6]; - real_type x0 = m_X[i]; - real_type H = m_X[i+1] - x0; - Hermite5_DDD( x-x0, H, base_DDD ); - return base_DDD[0] * m_Y[i] + base_DDD[1] * m_Y[i+1] + - base_DDD[2] * m_Yp[i] + base_DDD[3] * m_Yp[i+1] + - base_DDD[4] * m_Ypp[i] + base_DDD[5] * m_Ypp[i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::DDD( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_DDD( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::id_DDDD( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] || x >= m_X[m_npts-1] ) return 0; - } - real_type base_DDDD[6]; - real_type x0 = m_X[i]; - real_type H = m_X[i+1] - x0; - Hermite5_DDDD( x-x0, H, base_DDDD ); - return base_DDDD[0] * m_Y[i] + base_DDDD[1] * m_Y[i+1] + - base_DDDD[2] * m_Yp[i] + base_DDDD[3] * m_Yp[i+1] + - base_DDDD[4] * m_Ypp[i] + base_DDDD[5] * m_Ypp[i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::DDDD( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_DDDD( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::id_DDDDD( integer i, real_type x ) const { - if ( m_curve_can_extend && m_curve_extended_constant ) { - if ( x <= m_X[0] || x >= m_X[m_npts-1] ) return 0; - } - real_type base_DDDDD[6]; - real_type x0 = m_X[i]; - real_type H = m_X[i+1] - x0; - Hermite5_DDDDD( x-x0, H, base_DDDDD ); - return base_DDDDD[0] * m_Y[i] + base_DDDDD[1] * m_Y[i+1] + - base_DDDDD[2] * m_Yp[i] + base_DDDDD[3] * m_Yp[i+1] + - base_DDDDD[4] * m_Ypp[i] + base_DDDDD[5] * m_Ypp[i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - QuinticSplineBase::DDDDD( real_type x ) const { - integer idx = this->search( x ); // eval idx can modify x - return this->id_DDDDD( idx, x ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer // order - QuinticSplineBase::coeffs( - real_type * const cfs, - real_type * const nodes, - bool transpose - ) const { - size_t n = size_t(m_npts > 0 ? m_npts-1 : 0); - for ( size_t i = 0; i < n; ++i ) { - nodes[i] = m_X[i]; - real_type H = m_X[i+1]-m_X[i]; - real_type a = m_Y[i]; - real_type b = m_Yp[i]; - real_type c = m_Ypp[i]/2; - real_type d = ((10*(m_Y[i+1]-m_Y[i])/H-6*m_Yp[i]-4*m_Yp[i+1])/H-1.5*m_Ypp[i]+0.5*m_Ypp[i+1])/H; - real_type e = ((15*(m_Y[i]-m_Y[i+1])/H+8*m_Yp[i]+7*m_Yp[i+1])/H+1.5*m_Ypp[i]-m_Ypp[i+1])/(H*H); - real_type f = ((6*(m_Y[i+1]-m_Y[i])/H-3*(m_Yp[i]+m_Yp[i+1]))/H-0.5*m_Ypp[i]+0.5*m_Ypp[i+1])/(H*H*H); - if ( transpose ) { - cfs[6*i+5] = a; - cfs[6*i+4] = b; - cfs[6*i+3] = c; - cfs[6*i+2] = d; - cfs[6*i+1] = e; - cfs[6*i+0] = f; - } else { - cfs[i+5*n] = a; - cfs[i+4*n] = b; - cfs[i+3*n] = c; - cfs[i+2*n] = d; - cfs[i+1*n] = e; - cfs[i+0*n] = f; - } - } - return 6; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer - QuinticSplineBase::order( ) const { return 6; } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Implementation - void - QuinticSplineBase::copySpline( QuinticSplineBase const & S ) { - QuinticSplineBase::reserve(S.m_npts); - m_npts = S.m_npts; - std::copy_n( S.m_X, m_npts, m_X ); - std::copy_n( S.m_Y, m_npts, m_Y ); - std::copy_n( S.m_Yp, m_npts, m_Yp ); - std::copy_n( S.m_Ypp, m_npts, m_Ypp ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - QuinticSplineBase::writeToStream( ostream_type & s ) const { - size_t nseg = size_t(m_npts > 0 ? m_npts - 1 : 0); - for ( size_t i = 0; i < nseg; ++i ) - fmt::print( s, - "segment N.{:4} X:[{},{}] Y:[{},{}] Yp:[{},{}] Ypp:[{},{}] slope: {}\n", - i, - m_X[i], m_X[i+1], - m_Y[i], m_Y[i+1], - m_Yp[i], m_Yp[i+1], - m_Ypp[i], m_Ypp[i+1], - (m_Y[i+1]-m_Y[i])/(m_X[i+1]-m_X[i]) - ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.rst.txt deleted file mode 100644 index dfd88a94..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.rst.txt +++ /dev/null @@ -1,125 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx: - -Program Listing for File SplineQuinticBase.hxx -============================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuinticBase.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ___ _ _ _ ____ _ _ ____ - | / _ \ _ _(_)_ __ | |_(_) ___/ ___| _ __ | (_)_ __ ___| __ ) __ _ ___ ___ - | | | | | | | | | '_ \| __| |/ __\___ \| '_ \| | | '_ \ / _ \ _ \ / _` / __|/ _ \ - | | |_| | |_| | | | | | |_| | (__ ___) | |_) | | | | | | __/ |_) | (_| \__ \ __/ - | \__\_\\__,_|_|_| |_|\__|_|\___|____/| .__/|_|_|_| |_|\___|____/ \__,_|___/\___| - | |_| - | - \*/ - - namespace Splines { - - class QuinticSplineBase : public Spline { - protected: - Utils::Malloc m_baseValue; - - real_type * m_Yp; - real_type * m_Ypp; - bool m_external_alloc; - - public: - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using Spline::build; - #endif - - QuinticSplineBase( string const & name = "Spline" ) - : Spline(name) - , m_baseValue(name+"_memeory") - , m_Yp(nullptr) - , m_Ypp(nullptr) - , m_external_alloc(false) - {} - - ~QuinticSplineBase() override {} - - void - copySpline( QuinticSplineBase const & S ); - - real_type - ypNode( integer i ) const - { return m_Yp[size_t(i)]; } - - real_type - yppNode( integer i ) const - { return m_Ypp[size_t(i)]; } - - void - setRange( real_type xmin, real_type xmax ); - - void - reserve_external( - integer n, - real_type * & p_x, - real_type * & p_y, - real_type * & p_Yp, - real_type * & p_Ypp - ); - - // --------------------------- VIRTUALS ----------------------------------- - - real_type operator () ( real_type x ) const override; - real_type D( real_type x ) const override; - real_type DD( real_type x ) const override; - real_type DDD( real_type x ) const override; - real_type DDDD( real_type x ) const override; - real_type DDDDD( real_type x ) const override; - real_type id_eval( integer ni, real_type x ) const override; - real_type id_D( integer ni, real_type x ) const override; - real_type id_DD( integer ni, real_type x ) const override; - real_type id_DDD( integer ni, real_type x ) const override; - real_type id_DDDD( integer ni, real_type x ) const override; - real_type id_DDDDD( integer ni, real_type x ) const override; - - void writeToStream( ostream_type & s ) const override; - - unsigned type() const override { return QUINTIC_TYPE; } - void reserve( integer npts ) override; - void clear() override; - - integer // order - coeffs( - real_type * const cfs, - real_type * const nodes, - bool transpose = false - ) const override; - - integer order() const override; - - }; - - } - - // EOF: SplineQuinticBase.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.rst.txt deleted file mode 100644 index 1eb1c351..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.rst.txt +++ /dev/null @@ -1,813 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc: - -Program Listing for File SplineSet.cc -===================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSet.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include "SplinesUtils.hh" - #include "PolynomialRoots.hh" - - #include - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - namespace Splines { - - using std::abs; - using std::sqrt; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - integer - SplineSet::BinarySearch::search( std::string const & id ) const {\ - //for ( auto e : data ) - // std::cout << e.first << " -> " << e.second << '\n'; - // binary search - size_t U = data.size(); - size_t L = 0; - while ( U-L > 1 ) { - size_t pos = (L+U)>>1; - std::string const & id_pos = data[pos].first; - if ( id_pos < id ) L = pos; else U = pos; - } - if ( data[L].first == id ) return data[L].second; - if ( data[U].first == id ) return data[U].second; - return -1; // non trovato - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::BinarySearch::insert( std::string const & id, integer position ) { - size_t pos = data.size(); - data.push_back(DATA_TYPE(id,position)); - while ( pos > 0 ) { - size_t pos1 = pos-1; - data[pos].first = data[pos1].first; - data[pos].second = data[pos1].second; - if ( data[pos1].first < id ) break; - pos = pos1; - } - data[pos] = DATA_TYPE(id,position); - } - - #endif - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SplineSet::SplineSet( string const & name ) - : m_name(name) - , m_baseValue(name+"_values") - , m_basePointer(name+"_pointers") - , m_baseSplines(name+"_Splines") - , m_baseInt(name+"_is_monotone") - , m_npts(0) - , m_nspl(0) - , m_X(nullptr) - , m_Y(nullptr) - , m_Yp(nullptr) - , m_Ypp(nullptr) - , m_Ymin(nullptr) - , m_Ymax(nullptr) - { - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SplineSet::~SplineSet() { - m_baseValue.free(); - m_basePointer.free(); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - string - SplineSet::info() const { - string res = fmt::format( - "SplineSet[{}] n.points = {} n.splines = {}", - name(), m_npts, m_nspl - ); - - for ( size_t i = 0; i < size_t(m_nspl); ++i ) { - res += fmt::format("\nSpline n.{} ", i); - switch ( m_is_monotone[i] ) { - case -2: res += " with NON monotone data\n"; break; - case -1: res += " is NOT monotone\n"; break; - case 0: res += " is monotone\n"; break; - case 1: res += " is strictly monotone\n"; break; - default: UTILS_ERROR( - "SplineSet::info classification: {} not in range {-2,-1,0,1}\n", - m_is_monotone[i] - ); - } - res += m_splines[i]->info(); - } - return res; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::get_headers( std::vector & names ) const { - names.clear(); - names.reserve( size_t(m_nspl) ); - for ( integer i = 0; i < m_nspl; ++i ) - names.push_back( m_splines[i]->name() ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - string - SplineSet::name_list() const { - string tmp = "[ "; - for ( integer i = 0; i < m_nspl; ++i ) - tmp += "'" + m_splines[i]->name() + "' "; - tmp += "]"; - return tmp; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type const * - SplineSet::yNodes( integer i ) const { - UTILS_ASSERT( - i >=0 && i < m_nspl, - "SplineSet::yNodes({}) argument out of range [0,{}]\n", - i, m_nspl-1 - ); - return m_Y[i]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Spline * - SplineSet::getSpline( integer i ) const { - UTILS_ASSERT( - i >= 0 && i < m_nspl, - "SplineSet::getSpline({}) argument out of range [0,{}]\n", - i, m_nspl-1 - ); - return m_splines[i]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::dump_table( ostream_type & stream, integer num_points ) const { - Utils::Malloc mem("SplineSet::dump_table"); - mem.allocate( size_t(m_nspl) ); - real_type * vals = mem( size_t(m_nspl) ); - stream << 's'; - for ( integer i = 0; i < m_nspl; ++i ) stream << '\t' << header(i); - stream << '\n'; - - for ( integer j = 0; j < num_points; ++j ) { - real_type s = xMin() + ((xMax()-xMin())*j)/(num_points-1); - this->eval( s, vals, 1 ); - stream << s; - for ( integer i = 0; i < m_nspl; ++i ) stream << '\t' << vals[size_t(i)]; - stream << '\n'; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer - SplineSet::getPosition( char const * hdr ) const { - integer pos = m_header_to_position.search(hdr); - UTILS_ASSERT( - pos >= 0 && pos < m_nspl, - "SplineSet::getPosition(\"{}\") not found!\n" - "available keys: {}\n", - hdr, name_list() - ); - return pos; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::build( - integer nspl, - integer npts, - char const ** headers, - SplineType1D const * stype, - real_type const * data_X, - real_type const ** data_Y, - real_type const ** data_Yp - ) { - string msg = fmt::format("SplineSet[{}]::build(...):", m_name ); - UTILS_ASSERT( - nspl > 0, - "{} expected positive nspl = {}\n", msg, nspl - ); - UTILS_ASSERT( - npts > 1, - "{} expected npts = {} greather than 1", msg, npts - ); - m_nspl = nspl; - m_npts = npts; - // allocate memory - m_baseSplines.reallocate( size_t(m_nspl) ); - m_splines = reinterpret_cast(m_baseSplines( size_t(m_nspl) )); - - m_baseInt.reallocate( size_t(m_nspl) ); - m_is_monotone = m_baseInt( size_t(m_nspl) ); - - m_header_to_position.clear(); - - integer mem = npts; - for ( integer spl = 0; spl < nspl; ++spl ) { - switch (stype[size_t(spl)]) { - case QUINTIC_TYPE: - mem += npts; // Y, Yp, Ypp - case CUBIC_TYPE: - case AKIMA_TYPE: - case BESSEL_TYPE: - case PCHIP_TYPE: - case HERMITE_TYPE: - mem += npts; // Y, Yp - case CONSTANT_TYPE: - case LINEAR_TYPE: - mem += npts; - break; - case SPLINE_SET_TYPE: - case SPLINE_VEC_TYPE: - //default: - UTILS_ERROR( - "{} At spline n.{} named {} cannot be done for type = {}\n", - msg, spl, headers[spl], stype[spl] - ); - } - } - - m_baseValue.reallocate( size_t(mem + 2*nspl) ); - m_basePointer.reallocate( size_t(3*nspl) ); - - m_Y = m_basePointer ( size_t(m_nspl) ); - m_Yp = m_basePointer ( size_t(m_nspl) ); - m_Ypp = m_basePointer ( size_t(m_nspl) ); - m_X = m_baseValue ( size_t(m_npts) ); - m_Ymin = m_baseValue ( size_t(m_nspl) ); - m_Ymax = m_baseValue ( size_t(m_nspl) ); - - std::copy_n( data_X, npts, m_X ); - for ( size_t spl = 0; spl < size_t(nspl); ++spl ) { - real_type * & pY = m_Y[spl]; - real_type * & pYp = m_Yp[spl]; - real_type * & pYpp = m_Ypp[spl]; - pY = m_baseValue(size_t(m_npts)); - std::copy_n( data_Y[spl], npts, pY ); - if ( stype[spl] == CONSTANT_TYPE ) { - m_Ymin[spl] = *std::min_element( pY, pY+npts-1 ); - m_Ymax[spl] = *std::max_element( pY, pY+npts-1 ); - } else { - m_Ymin[spl] = *std::min_element( pY, pY+npts ); - m_Ymax[spl] = *std::max_element( pY, pY+npts ); - } - pYpp = pYp = nullptr; - switch ( stype[size_t(spl)] ) { - case QUINTIC_TYPE: - pYpp = m_baseValue( size_t(m_npts) ); - case CUBIC_TYPE: - case AKIMA_TYPE: - case BESSEL_TYPE: - case PCHIP_TYPE: - case HERMITE_TYPE: - pYp = m_baseValue( size_t(m_npts) ); - if ( stype[spl] == HERMITE_TYPE ) { - UTILS_ASSERT( - data_Yp != nullptr && data_Yp[spl] != nullptr, - "{} At spline n.{} named {}\n" - "expect to find derivative values", - msg, spl, headers[spl] - ); - std::copy_n( data_Yp[spl], npts, pYp ); - } - case CONSTANT_TYPE: - case LINEAR_TYPE: - case SPLINE_SET_TYPE: - case SPLINE_VEC_TYPE: - //default: - break; - } - string h = headers[spl]; - Spline * & s = m_splines[spl]; - - m_is_monotone[spl] = -1; - switch (stype[size_t(spl)]) { - case CONSTANT_TYPE: - s = new ConstantSpline(h); - static_cast(s)->reserve_external( m_npts, m_X, pY ); - static_cast(s)->m_npts = m_npts; - static_cast(s)->build(); - break; - - case LINEAR_TYPE: - s = new LinearSpline(h); - static_cast(s)->reserve_external( m_npts, m_X, pY ); - static_cast(s)->m_npts = m_npts; - static_cast(s)->build(); - // check monotonicity of data - { integer flag = 1; - for ( integer j = 1; j < m_npts; ++j ) { - if ( pY[j-1] > pY[j] ) { flag = -1; break; } // non monotone data - if ( Utils::isZero(pY[j-1]-pY[j]) && m_X[j-1] < m_X[j] ) flag = 0; // non strict monotone - } - m_is_monotone[spl] = flag; - } - break; - - case CUBIC_TYPE: - s = new CubicSpline(h); - static_cast(s)->reserve_external( m_npts, m_X, pY, pYp ); - static_cast(s)->m_npts = m_npts; - static_cast(s)->build(); - m_is_monotone[spl] = checkCubicSplineMonotonicity( m_X, pY, pYp, m_npts ); - break; - - case AKIMA_TYPE: - s = new AkimaSpline(h); - static_cast(s)->reserve_external( m_npts, m_X, pY, pYp ); - static_cast(s)->m_npts = m_npts; - static_cast(s)->build(); - m_is_monotone[spl] = checkCubicSplineMonotonicity( m_X, pY, pYp, m_npts ); - break; - - case BESSEL_TYPE: - s = new BesselSpline(h); - static_cast(s)->reserve_external( m_npts, m_X, pY, pYp ); - static_cast(s)->m_npts = m_npts; - static_cast(s)->build(); - m_is_monotone[spl] = checkCubicSplineMonotonicity( m_X, pY, pYp, m_npts ); - break; - - case PCHIP_TYPE: - s = new PchipSpline(h); - static_cast(s)->reserve_external( m_npts, m_X, pY, pYp ); - static_cast(s)->m_npts = m_npts; - static_cast(s)->build(); - m_is_monotone[spl] = checkCubicSplineMonotonicity( m_X, pY, pYp, m_npts ); - break; - - case HERMITE_TYPE: - s = new HermiteSpline(h); - static_cast(s)->reserve_external( m_npts, m_X, pY, pYp ); - static_cast(s)->m_npts = m_npts; - static_cast(s)->build(); - m_is_monotone[spl] = checkCubicSplineMonotonicity( m_X, pY, pYp, m_npts ); - break; - - case QUINTIC_TYPE: - s = new QuinticSpline(h); - static_cast(s)->reserve_external( m_npts, m_X, pY, pYp, pYpp ); - static_cast(s)->m_npts = m_npts; - static_cast(s)->build(); - break; - - case SPLINE_SET_TYPE: - case SPLINE_VEC_TYPE: - //default: - UTILS_ERROR( - "{} At spline n.{} named {}\n" - "{} not allowed as spline type\n" - "in SplineSet::build for {}-th spline\n", - msg, spl, headers[spl], stype[size_t(spl)], spl - ); - } - m_header_to_position.insert( s->name(), integer(spl) ); - } - - m_baseValue . must_be_empty( "SplineSet::build, baseValue" ); - m_basePointer . must_be_empty( "SplineSet::build, basePointer" ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval( real_type x, vector & vals ) const { - vals.resize(size_t(m_nspl)); - for ( integer i = 0; i < m_nspl; ++i ) - vals[i] = (*m_splines[i])(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval( - real_type x, - real_type * const vals, - integer incy - ) const { - integer ii = 0; - for ( integer i = 0; i < m_nspl; ++i, ii += incy ) - vals[ii] = (*m_splines[i])(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval_D( real_type x, vector & vals ) const { - vals.resize(size_t(m_nspl)); - for ( integer i = 0; i < m_nspl; ++i ) - vals[size_t(i)] = m_splines[i]->D(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval_D( - real_type x, - real_type * const vals, - integer incy - ) const { - size_t ii = 0; - for ( integer i = 0; i < m_nspl; ++i, ii += size_t(incy) ) - vals[ii] = m_splines[i]->D(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval_DD( real_type x, vector & vals ) const { - vals.resize(size_t(m_nspl)); - for ( integer i = 0; i < m_nspl; ++i ) - vals[size_t(i)] = m_splines[i]->DD(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval_DD( - real_type x, - real_type * const vals, - integer incy - ) const { - size_t ii = 0; - for ( integer i = 0; i < m_nspl; ++i, ii += size_t(incy) ) - vals[ii] = m_splines[i]->DD(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval_DDD( real_type x, vector & vals ) const { - vals.resize(size_t(m_nspl)); - for ( integer i = 0; i < m_nspl; ++i ) - vals[i] = m_splines[i]->DDD(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval_DDD( - real_type x, - real_type * const vals, - integer incy - ) const { - size_t ii = 0; - for ( integer i = 0; i < m_nspl; ++i, ii += size_t(incy) ) - vals[ii] = m_splines[i]->DDD(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // vectorial values - - Spline const * - SplineSet::intersect( - integer spl, - real_type zeta, - real_type & x - ) const { - string msg = fmt::format("SplineSet[{}]::intersect(...):", m_name ); - UTILS_ASSERT( - spl >= 0 && spl < m_nspl, - "{}\nSpline n.{} is not in SplineSet", msg, spl - ); - UTILS_ASSERT( - m_is_monotone[size_t(spl)]>0, - "{}\nSpline n.{} is not monotone and can't be used as independent", - msg, spl - ); - Spline const * S = m_splines[spl]; - // cerco intervallo intersezione - real_type const * X = m_Y[spl]; - UTILS_ASSERT( - zeta >= X[0] && zeta <= X[m_npts-1], - "{} evaluation at zeta = {} is out of range: [{},{}]\n", - msg, zeta, X[0], X[m_npts-1] - ); - - integer interval = integer(lower_bound( X, X+m_npts, zeta ) - X); - if ( interval > 0 ) --interval; - if ( Utils::isZero(X[size_t(interval)]-X[size_t(interval+1)]) ) ++interval; // degenerate interval for duplicated nodes - if ( interval >= m_npts-1 ) interval = m_npts-2; - - // compute intersection - real_type a = m_X[interval]; - real_type b = m_X[interval+1]; - real_type ya = X[interval]; - real_type yb = X[interval+1]; - real_type DX = b-a; - real_type DY = yb-ya; - UTILS_ASSERT( - zeta >= ya && zeta <= yb, - "{} Bad interval [{},{}] for zeta = {}\n", msg, ya, yb, zeta - ); - UTILS_ASSERT( - a < b, - "{} Bad x interval [{},{}]\n", msg, a, b - ); - if ( S->type() == LINEAR_TYPE ) { - x = a + (b-a)*(zeta-ya)/(yb-ya); - } else { - real_type const * dX = m_Yp[spl]; - real_type dya = dX[interval]; - real_type dyb = dX[interval+1]; - PolynomialRoots::Cubic cubic( - (dyb+dya-2*DY/DX)/(DX*DX), // A - (3*DY/DX-2*dya-dyb)/DX, // B - dya, // C - ya-zeta // D - ); - real_type r[3]; - integer npr = cubic.getRealRoots( r ); - // cerca radice buona - bool ok = false; - for ( integer i = 0; i < npr && !ok; ++i ) { - ok = r[i] >= 0 && r[i] <= DX; - if ( ok ) x = a + r[i]; - } - UTILS_ASSERT( - ok, - "{}\nfailed to find intersection with independent spline at zeta = {}\n", - msg, zeta - ); - } - return S; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval2( - integer indep, - real_type zeta, - real_type * const vals, - integer incy - ) const { - real_type x; - intersect( indep, zeta, x ); - size_t ii = 0; - for ( integer i = 0; i < m_nspl; ++i, ii += size_t(incy) ) - vals[ii] = (*m_splines[i])(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval2( - integer indep, - real_type zeta, - vector & vals - ) const { - vals.resize(size_t(m_nspl)); - this->eval2( indep, zeta, &vals.front(), 1 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineSet::eval2( real_type zeta, integer indep, integer spl ) const { - real_type x; - intersect( indep, zeta, x ); - return (*m_splines[spl] )(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineSet::eval2( - real_type zeta, - char const * indep, - char const * name - ) const { - return this->eval2( - zeta, this->getPosition(indep), this->getPosition(name) - ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval2_D( - integer indep, - real_type zeta, - real_type * const vals, - integer incy - ) const { - real_type x; - Spline const * S = intersect( indep, zeta, x ); - real_type ds = S->D(x); - size_t ii = 0; - for ( integer i = 0; i < m_nspl; ++i, ii += size_t(incy) ) - vals[ii] = m_splines[i]->D(x)/ds; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval2_D( - integer spl, - real_type zeta, - vector & vals - ) const { - vals.resize(size_t(m_nspl)); - this->eval2_D( spl, zeta, &vals.front(), 1 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineSet::eval2_D( real_type zeta, integer indep, integer spl ) const { - real_type x; - Spline const * S = intersect( indep, zeta, x ); - return m_splines[spl]->D(x)/S->D(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineSet::eval2_D( - real_type zeta, - char const * indep, - char const * name - ) const { - return this->eval2_D( - zeta, this->getPosition(indep), this->getPosition(name) - ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval2_DD( - integer indep, - real_type zeta, - real_type * const vals, - integer incy - ) const { - real_type x; - Spline const * S = intersect( indep, zeta, x ); - real_type dt = 1/S->D(x); - real_type dt2 = dt*dt; - real_type ddt = -S->DD(x)*(dt*dt2); - size_t ii = 0; - for ( integer i = 0; i < m_nspl; ++i, ii += size_t(incy) ) { - S = m_splines[i]; - vals[ii] = S->DD(x)*dt2 + S->D(x)*ddt; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval2_DD( - integer indep, - real_type zeta, - vector & vals - ) const { - vals.resize(size_t(m_nspl)); - this->eval2_DD( indep, zeta, &vals.front(), 1 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineSet::eval2_DD( real_type zeta, integer indep, integer spl ) const { - real_type x; - Spline const * S = intersect( indep, zeta, x ); - real_type dt = 1/S->D(x); - real_type dt2 = dt*dt; - real_type ddt = -S->DD(x)*(dt*dt2); - Spline const * SPL = m_splines[spl]; - return SPL->DD(x)*dt2 + SPL->D(x)*ddt; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineSet::eval2_DD( - real_type zeta, - char const * indep, - char const * name - ) const { - return this->eval2_DD( - zeta, this->getPosition(indep), this->getPosition(name) - ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval2_DDD( - integer indep, - real_type zeta, - real_type * const vals, - integer incy - ) const { - real_type x; - Spline const * S = intersect( indep, zeta, x ); - real_type dt = 1/S->D(x); - real_type dt3 = dt*dt*dt; - real_type ddt = -S->DD(x)*dt3; - real_type dddt = 3*(ddt*ddt)/dt-S->DDD(x)*(dt*dt3); - size_t ii = 0; - for ( integer i = 0; i < m_nspl; ++i, ii += size_t(incy) ) { - S = m_splines[i]; - vals[ii] = S->DDD(x)*dt3 + 3*S->DD(x)*dt*ddt + S->D(x)*dddt; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::eval2_DDD( - integer spl, - real_type zeta, - vector & vals - ) const { - vals.resize(size_t(m_nspl)); - this->eval2_DDD( spl, zeta, &vals.front(), 1 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineSet::eval2_DDD( real_type zeta, integer indep, integer spl ) const { - real_type x; - Spline const * S = intersect( indep, zeta, x ); - real_type dt = 1/S->D(x); - real_type dt3 = dt*dt*dt; - real_type ddt = -S->DD(x)*dt3; - real_type dddt = 3*(ddt*ddt)/dt-S->DDD(x)*(dt*dt3); - - Spline const * SPL = m_splines[spl]; - return SPL->DDD(x)*dt3 + 3*SPL->DD(x)*dt*ddt + SPL->D(x)*dddt; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineSet::eval2_DDD( - real_type zeta, - char const * indep, - char const * name - ) const { - return this->eval2_DDD( - zeta, this->getPosition(indep), this->getPosition(name) - ); - } - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.rst.txt deleted file mode 100644 index d6c9ac9f..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.rst.txt +++ /dev/null @@ -1,875 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx: - -Program Listing for File SplineSet.hxx -====================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSet.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ____ _ _ ____ _ - | / ___| _ __ | (_)_ __ ___/ ___| ___| |_ - | \___ \| '_ \| | | '_ \ / _ \___ \ / _ \ __| - | ___) | |_) | | | | | | __/___) | __/ |_ - | |____/| .__/|_|_|_| |_|\___|____/ \___|\__| - | |_| - \*/ - - namespace Splines { - - class SplineSet { - - SplineSet( SplineSet const & ) = delete; - SplineSet const & operator = ( SplineSet const & ) = delete; - - class BinarySearch { - public: - typedef std::pair DATA_TYPE; - private: - mutable std::vector data; - public: - BinarySearch() { data.clear(); data.reserve(256); } - ~BinarySearch() { data.clear(); } - - void clear() { data.clear(); data.reserve(256); } - - integer n_elem() const { return integer(data.size()); } - - DATA_TYPE const & - get_elem( integer i ) const { return data[size_t(i)]; } - - integer search( std::string const & id ) const; - void insert( std::string const & id, integer position ); - }; - - protected: - - string const m_name; - - Utils::Malloc m_baseValue; - Utils::Malloc m_basePointer; - Utils::Malloc m_baseSplines; - Utils::Malloc m_baseInt; - - integer m_npts; - integer m_nspl; - - real_type * m_X; - real_type ** m_Y; - real_type ** m_Yp; - real_type ** m_Ypp; - real_type * m_Ymin; - real_type * m_Ymax; - - Spline ** m_splines; - int * m_is_monotone; - - BinarySearch m_header_to_position; - - private: - - Spline const * - intersect( integer spl, real_type zeta, real_type & x ) const; - - public: - - SplineSet( string const & name = "SplineSet" ); - - virtual - ~SplineSet(); - - string const & name() const { return m_name; } - - string const & - header( integer i ) const - { return m_splines[i]->name(); } - - // vectorial values - void get_headers( std::vector & names ) const; - - string name_list() const; - - // return +1 = strict monotone, 0 weak monotone, -1 non monotone - int - isMonotone( integer i ) const - { return m_is_monotone[i]; } - - integer numPoints() const { return m_npts; } - - integer numSplines() const { return m_nspl; } - - integer getPosition( char const * hdr ) const; - - real_type const * xNodes() const { return m_X; } - - real_type const * yNodes( integer i ) const; - - real_type - xNode( integer npt ) const - { return m_X[npt]; } - - real_type - yNode( integer npt, integer spl ) const - { return m_Y[spl][npt]; } - - real_type xMin() const { return m_X[0]; } - - real_type xMax() const { return m_X[m_npts-1]; } - - real_type yMin( integer spl ) const { return m_Ymin[size_t(spl)]; } - - real_type yMax( integer spl ) const { return m_Ymax[size_t(spl)]; } - - real_type - yMin( char const * spl ) const { - integer idx = this->getPosition(spl); - return m_Ymin[idx]; - } - - real_type - yMax( char const * spl ) const { - integer idx = this->getPosition(spl); - return m_Ymax[idx]; - } - - Spline * getSpline( integer i ) const; - - Spline * - getSpline( char const * hdr ) const { - integer idx = this->getPosition(hdr); - return m_splines[idx]; - } - - real_type - operator () ( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return (*S)(x); - } - - real_type - eval( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return (*S)(x); - } - - real_type - D( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return S->D(x); - } - - real_type - eval_D( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return S->D(x); - } - - real_type - DD( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return S->DD(x); - } - - real_type - eval_DD( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return S->DD(x); - } - - real_type - DDD( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return S->DDD(x); - } - - real_type - eval_DDD( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return S->DDD(x); - } - - real_type - DDDD( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return S->DDDD(x); - } - - real_type - eval_DDDD( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return S->DDDD(x); - } - - real_type - DDDDD( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return S->DDDDD(x); - } - - real_type - eval_DDDDD( real_type x, integer spl ) const { - Spline const * S = this->getSpline(spl); - return S->DDDDD(x); - } - - real_type - eval( real_type x, char const * name ) const { - Spline const * S = this->getSpline(name); - return (*S)(x); - } - - real_type - eval_D( real_type x, char const * name ) const { - Spline const * S = this->getSpline(name); - return S->D(x); - } - - real_type - eval_DD( real_type x, char const * name ) const { - Spline const * S = this->getSpline(name); - return S->DD(x); - } - - real_type - eval_DDD( real_type x, char const * name ) const { - Spline const * S = this->getSpline(name); - return S->DDD(x); - } - - real_type - eval_DDDD( real_type x, char const * name ) const { - Spline const * S = this->getSpline(name); - return S->DDDD(x); - } - - real_type - eval_DDDDD( real_type x, char const * name ) const { - Spline const * S = this->getSpline(name); - return S->DDDDD(x); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // \group Evaluate to std vector - - void eval( real_type x, vector & vals ) const; - - void eval_D( real_type x, vector & vals ) const; - - void eval_DD( real_type x, vector & vals ) const; - - void eval_DDD( real_type x, vector & vals ) const; - - void eval_DDDD( real_type x, vector & vals ) const; - - void eval_DDDDD( real_type x, vector & vals ) const; - - - // \group Evaluate to vector - - void - eval( - real_type x, - real_type * const vals, - integer incy = 1 - ) const; - - void - eval_D( - real_type x, - real_type * const vals, - integer incy = 1 - ) const; - - void - eval_DD( - real_type x, - real_type * const vals, - integer incy = 1 - ) const; - - void - eval_DDD( - real_type x, - real_type * const vals, - integer incy = 1 - ) const; - - void - eval_DDDD( - real_type x, - real_type * const vals, - integer incy = 1 - ) const; - - void - eval_DDDDD( - real_type x, - real_type * const vals, - integer incy = 1 - ) const; - - - // \group Evaluate using another spline as independent - - // change independent variable - void - eval2( - integer spl, - real_type zeta, - vector & vals - ) const; - - void - eval2_D( - integer spl, - real_type zeta, - vector & vals - ) const; - - void - eval2_DD( - integer spl, - real_type zeta, - vector & vals - ) const; - - void - eval2_DDD( - integer spl, - real_type zeta, - vector & vals - ) const; - - - // \group Evaluate using another spline as independent - - void - eval2( - integer spl, - real_type zeta, - real_type * const vals, - integer incy = 1 - ) const; - - void - eval2_D( - integer spl, - real_type zeta, - real_type * const vals, - integer incy = 1 - ) const; - - void - eval2_DD( - integer spl, - real_type zeta, - real_type * const vals, - integer incy = 1 - ) const; - - void - eval2_DDD( - integer spl, - real_type zeta, - real_type * const vals, - integer incy = 1 - ) const; - - - // \group Evaluate using another spline as independent - - real_type - eval2( - real_type zeta, - char const * indep, - char const * name - ) const; - - real_type - eval2_D( - real_type zeta, - char const * indep, - char const * name - ) const; - - real_type - eval2_DD( - real_type zeta, - char const * indep, - char const * name - ) const; - - real_type - eval2_DDD( - real_type zeta, - char const * indep, - char const * name - ) const; - - - // \group Evaluate using another spline as independent - - real_type - eval2( - real_type zeta, - integer indep, - integer spl - ) const; - - real_type - eval2_D( - real_type zeta, - integer indep, - integer spl - ) const; - - real_type - eval2_DD( - real_type zeta, - integer indep, - integer spl - ) const; - - real_type - eval2_DDD( - real_type zeta, - integer indep, - integer spl - ) const; - - - // \group Evaluate onto a vector - - void - eval( real_type x, GenericContainer & vals ) const; - - void - eval( vec_real_type const & vec, GenericContainer & vals ) const; - - void - eval( - real_type x, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval( - vec_real_type const & vec, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - - void - eval2( - real_type zeta, - integer indep, - GenericContainer & vals - ) const; - - void - eval2( - vec_real_type const & zetas, - integer indep, - GenericContainer & vals - ) const; - - void - eval2( - real_type zeta, - integer indep, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2( - vec_real_type const & zetas, - integer indep, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2( - real_type zeta, - char const * indep, - GenericContainer & vals - ) const { - this->eval2( zeta, this->getPosition(indep), vals ); - } - - void - eval2( - vec_real_type const & zetas, - char const * indep, - GenericContainer & vals - ) const { - this->eval2( zetas, this->getPosition(indep), vals ); - } - - void - eval2( - real_type zeta, - char const * indep, - vec_string_type const & columns, - GenericContainer & vals - ) const { - this->eval2( zeta, this->getPosition(indep), columns, vals ); - } - - void - eval2( - vec_real_type const & zetas, - char const * indep, - vec_string_type const & columns, - GenericContainer & vals - ) const { - this->eval2( zetas, this->getPosition(indep), columns, vals ); - } - - void - eval_D( - real_type x, - GenericContainer & vals - ) const; - - void - eval_D( - vec_real_type const & vec, - GenericContainer & vals - ) const; - - void - eval_D( - real_type x, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval_D( - vec_real_type const & vec, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2_D( - real_type zeta, - integer indep, - GenericContainer & vals - ) const; - - void - eval2_D( - vec_real_type const & zetas, - integer indep, - GenericContainer & vals - ) const; - - void - eval2_D( - real_type zeta, - integer indep, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2_D( - vec_real_type const & zetas, - integer indep, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2_D( - real_type zeta, - char const * indep, - GenericContainer & vals - ) const { - this->eval2_D( zeta, this->getPosition(indep), vals ); - } - - void - eval2_D( - vec_real_type const & zetas, - char const * indep, - GenericContainer & vals - ) const { - this->eval2_D( zetas, this->getPosition(indep), vals ); - } - - void - eval2_D( - real_type zeta, - char const * indep, - vec_string_type const & columns, - GenericContainer & vals - ) const { - this->eval2_D( zeta, this->getPosition(indep), columns, vals ); - } - - void - eval2_D( - vec_real_type const & zetas, - char const * indep, - vec_string_type const & columns, - GenericContainer & vals - ) const { - this->eval2_D( zetas, this->getPosition(indep), columns, vals ); - } - - void - eval_DD( - real_type x, - GenericContainer & vals - ) const; - - void - eval_DD( - vec_real_type const & vec, - GenericContainer & vals - ) const; - - void - eval_DD( - real_type x, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval_DD( - vec_real_type const & vec, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2_DD( - real_type zeta, - integer indep, - GenericContainer & vals - ) const; - - void - eval2_DD( - vec_real_type const & zetas, - integer indep, - GenericContainer & vals - ) const; - - void - eval2_DD( - real_type zeta, - integer indep, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2_DD( - vec_real_type const & zetas, - integer indep, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2_DD( - real_type zeta, - char const * indep, - GenericContainer & vals - ) const { - this->eval2_DD( zeta, this->getPosition(indep), vals ); - } - - void - eval2_DD( - vec_real_type const & zetas, - char const * indep, - GenericContainer & vals - ) const { - this->eval2_DD( zetas, this->getPosition(indep), vals ); - } - - void - eval2_DD( - real_type zeta, - char const * indep, - vec_string_type const & columns, - GenericContainer & vals - ) const { - this->eval2_DD( zeta, this->getPosition(indep), columns, vals ); - } - - void - eval2_DD( - vec_real_type const & zetas, - char const * indep, - vec_string_type const & columns, - GenericContainer & vals - ) const { - this->eval2_DD( zetas, this->getPosition(indep), columns, vals ); - } - - void - eval_DDD( - real_type x, - GenericContainer & vals - ) const; - - void - eval_DDD( - vec_real_type const & vec, - GenericContainer & vals - ) const; - - void - eval_DDD( - real_type x, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval_DDD( - vec_real_type const & vec, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2_DDD( - real_type zeta, - integer indep, - GenericContainer & vals - ) const; - - void - eval2_DDD( - vec_real_type const & zetas, - integer indep, - GenericContainer & vals - ) const; - - void - eval2_DDD( - real_type zeta, - integer indep, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2_DDD( - vec_real_type const & zetas, - integer indep, - vec_string_type const & columns, - GenericContainer & vals - ) const; - - void - eval2_DDD( - real_type zeta, - char const * indep, - GenericContainer & vals - ) const { - this->eval2_DDD( zeta, this->getPosition(indep), vals ); - } - - void - eval2_DDD( - vec_real_type const & zetas, - char const * indep, - GenericContainer & vals - ) const { - this->eval2_DDD( zetas, this->getPosition(indep), vals ); - } - - void - eval2_DDD( - real_type zeta, - char const * indep, - vec_string_type const & columns, - GenericContainer & vals - ) const { - this->eval2_DDD( zeta, this->getPosition(indep), columns, vals ); - } - - void - eval2_DDD( - vec_real_type const & zetas, - char const * indep, - vec_string_type const & columns, - GenericContainer & vals - ) const { - this->eval2_DDD( zetas, this->getPosition(indep), columns, vals ); - } - - - void - build( - integer nspl, - integer npts, - char const ** headers, - SplineType1D const * stype, - real_type const * X, - real_type const ** Y, - real_type const ** Yp = nullptr - ); - - void - setup( GenericContainer const & gc ); - - void - build( GenericContainer const & gc ) - { this->setup(gc); } - - unsigned - type() const - { return SPLINE_SET_TYPE; } - - string - info() const; - - void - info( ostream_type & stream ) const - { stream << this->info() << '\n'; } - - void - dump_table( ostream_type & s, integer num_points ) const; - - }; - - } - - // EOF: SplineSet.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.rst.txt deleted file mode 100644 index 2c2b6ccb..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.rst.txt +++ /dev/null @@ -1,854 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc: - -Program Listing for File SplineSetGC.cc -======================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSetGC.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - using GenericContainerNamespace::GC_INTEGER; - using GenericContainerNamespace::GC_VEC_BOOL; - using GenericContainerNamespace::GC_VEC_INTEGER; - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::GC_VEC_STRING; - using GenericContainerNamespace::GC_VECTOR; - using GenericContainerNamespace::GC_MAP; - using GenericContainerNamespace::GC_MAT_REAL; - using GenericContainerNamespace::mat_real_type; - using GenericContainerNamespace::vec_int_type; - using GenericContainerNamespace::vec_real_type; - using GenericContainerNamespace::vec_string_type; - using GenericContainerNamespace::vector_type; - using GenericContainerNamespace::map_type; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSet::setup( GenericContainer const & gc ) { - /* - // gc["spline_type"] - // gc["xdata"] - // gc["ydata"] - // gc["headers"] (opzionale) - */ - vec_string_type spline_type_vec; - vec_real_type X; - vector stype; - vec_string_type headers; - vector Y, Yp; - - string msg = fmt::format( "SplineSet[{}]::setup( gc ): ", m_name ); - - UTILS_ASSERT( - gc.exists("spline_type"), "{}, missing `spline_type` field!\n", msg - ); - gc("spline_type").copyto_vec_string( - spline_type_vec, (msg+"in reading `spline_type'\n").c_str() - ); - m_nspl = integer(spline_type_vec.size()); - stype.resize( size_t(m_nspl) ); - for ( size_t spl = 0; spl < size_t(m_nspl); ++spl ) - stype[spl] = string_to_splineType( spline_type_vec[spl] ); - - UTILS_ASSERT( - gc.exists("xdata"), "{}, missing `xdata` field!\n", msg - ); - gc("xdata").copyto_vec_real( X, (msg+"reading `xdata'").c_str() ); - m_npts = integer( X.size() ); - - UTILS_ASSERT( - gc.exists("ydata"), "{}, missing `ydata` field!\n", msg - ); - GenericContainer const & gc_ydata = gc("ydata"); - - // allocate for _nspl splines - Y . resize( size_t(m_nspl) ); - Yp . resize( size_t(m_nspl) ); - - // se tipo vettore o matrice deve esserci headers - if ( GC_MAT_REAL == gc_ydata.get_type() || - GC_VECTOR == gc_ydata.get_type() ) { - UTILS_ASSERT( - gc.exists("headers"), - "{}, missing `headers` field!\n", msg - ); - GenericContainer const & gc_headers = gc("headers"); - gc_headers.copyto_vec_string( - headers, (msg+", reading `headers'").c_str() - ); - UTILS_ASSERT( - headers.size() == size_t(m_nspl), - "{}, field `headers` expected to be of size {} found of size {}\n", - msg, m_nspl, headers.size() - ); - } - - if ( GC_MAT_REAL == gc_ydata.get_type() ) { - // leggo matrice - mat_real_type const & data = gc_ydata.get_mat_real(); - UTILS_ASSERT( - size_t(m_nspl) == data.numCols(), - "{}, number of splines [{}]\n" - "differs from the number of `ydata` columns [{}] in data\n", - msg, m_nspl, data.numCols() - ); - UTILS_ASSERT( - size_t(m_npts) == data.numRows(), - "{}, number of points [{}]\n" - "differs from the number of `ydata` rows [{}] in data\n", - msg, m_npts, data.numRows() - ); - for ( size_t i = 0; i < size_t(m_nspl); ++i ) - data.getColumn(unsigned(i),Y[i]); - } else if ( GC_VECTOR == gc_ydata.get_type() ) { - vector_type const & data = gc_ydata.get_vector(); - UTILS_ASSERT( - size_t(m_nspl) == data.size(), - "{}, field `ydata` expected of size {} found of size {}\n", - msg, m_nspl, data.size() - ); - string msg1 = msg+" reading `ydata` columns"; - for ( size_t spl = 0; spl < size_t(m_nspl); ++spl ) { - GenericContainer const & datai = data[spl]; - integer nrow = m_npts; - if ( stype[spl] == CONSTANT_TYPE ) --nrow; // constant spline uses n-1 points - datai.copyto_vec_real( Y[spl], msg1.c_str() ); - UTILS_ASSERT( - size_t(m_npts) == Y[spl].size(), - "{}, column {} of `ydata` expected of size {} found of size {}\n", - msg, spl, m_npts, Y[spl].size() - ); - } - } else if ( GC_MAP == gc_ydata.get_type() ) { - map_type const & data = gc_ydata.get_map(); - UTILS_ASSERT( - data.size() == size_t(m_nspl), - "{}, field `ydata` expected of size {} found of size {}\n", - msg, m_nspl, data.size() - ); - headers.clear(); headers.reserve(data.size()); - map_type::const_iterator im = data.begin(); - string msg1 = msg+" reading `ydata` columns"; - for ( size_t spl = 0; im != data.end(); ++im, ++spl ) { - headers.push_back(im->first); - GenericContainer const & datai = im->second; - integer nrow = m_npts; - if ( stype[spl] == CONSTANT_TYPE ) --nrow; // constant spline uses n-1 points - datai.copyto_vec_real( Y[spl], msg1.c_str() ); - UTILS_ASSERT( - size_t(m_npts) == Y[spl].size(), - "{}, column `{}` of `ydata` expected of size {} found of size {}\n", - msg, im->first, m_npts, Y[spl].size() - ); - } - } else { - UTILS_ERROR( - "{}, field `data` expected\n" - "to be of type `mat_real_type`, `vector_type` or `map_type'\n" - "found: `{}`\n", - msg, gc_ydata.get_type_name() - ); - } - - if ( gc.exists("ypdata") ) { // yp puo' essere solo tipo map - GenericContainer const & gc_ypdata = gc("ypdata"); - UTILS_ASSERT( - GC_MAP == gc_ypdata.get_type(), - "{}, field `ypdata` expected to be of type `map_type` found: `{}`\n", - msg, gc_ypdata.get_type_name() - ); - - std::map h_to_pos; - vec_string_type::const_iterator is = headers.begin(); - for ( integer idx = 0; is != headers.end(); ++is ) - h_to_pos[*is] = idx++; - - string msg1 = msg+" reading `ypdata` columns"; - map_type const & data = gc_ypdata.get_map(); - map_type::const_iterator im = data.begin(); - for (; im != data.end(); ++im ) { - // cerca posizione - std::map::iterator is_pos = h_to_pos.find(im->first); - UTILS_ASSERT( - is_pos != h_to_pos.end(), - "{}, column `{}` of `ypdata` not found\n", - msg, im->first - ); - integer spl = is_pos->second; - - GenericContainer const & datai = im->second; - integer nrow = m_npts; - if ( stype[size_t(spl)] == CONSTANT_TYPE ) --nrow; // constant spline uses n-1 points - datai.copyto_vec_real( Yp[size_t(spl)], msg1.c_str() ); - UTILS_ASSERT( - size_t(m_npts) == Y[spl].size(), - "{}, column `{}` of `ypdata` expected of size {} found of size {}\n", - msg, im->first, m_npts, Y[spl].size() - ); - } - } - - Utils::Malloc mem( msg ); - mem.allocate( size_t( 3*m_nspl ) ); - - void ** __headers = mem( size_t( m_nspl ) ); - void ** __Y = mem( size_t( m_nspl ) ); - void ** __Yp = mem( size_t( m_nspl ) ); - - for ( size_t spl = 0; spl < size_t(m_nspl); ++spl ) { - __headers[spl] = const_cast( reinterpret_cast( - headers[spl].c_str() - ) ); - __Y[spl] = reinterpret_cast( - &Y[spl].front() - ); - __Yp[spl] = reinterpret_cast( - Yp[spl].size() > 0 ? &Yp[spl].front() : nullptr - ); - } - - this->build( - m_nspl, m_npts, - reinterpret_cast(const_cast(__headers)), - &stype.front(), &X.front(), - reinterpret_cast(const_cast(__Y)), - reinterpret_cast(const_cast(__Yp)) - ); - - if ( gc.exists("boundary") ) { - GenericContainer const & gc_boundary = gc("boundary"); - integer ne = integer(gc_boundary.get_num_elements()); - UTILS_ASSERT( - ne == m_nspl, - "{}, field `boundary` expected a" - " generic vector of size: {} but is of size: {}\n", - msg, ne, m_nspl - ); - - for ( integer ispl = 0; ispl < ne; ++ispl ) { - Spline * S = m_splines[size_t(ispl)]; - GenericContainer const & item = gc_boundary(ispl,"SplineSet boundary data"); - - if ( item.exists("closed") && item("closed").get_bool() ) { - S->make_closed(); - } else { - S->make_opened(); - if ( item.exists("extend") && item("extend").get_bool() ) { - S->make_unbounded(); - if ( item("extend_constant").get_bool() ) - S->make_extended_constant(); - else - S->make_extended_not_constant(); - } else { - S->make_bounded(); - } - } - } - } - } - - void - SplineSet::eval( real_type x, GenericContainer & gc ) const { - map_type & vals = gc.set_map(); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first] = m_splines[size_t(D.second)]->eval(x); - } - } - - void - SplineSet::eval( vec_real_type const & vec, GenericContainer & gc ) const { - integer npts = integer(vec.size()); - map_type & vals = gc.set_map(); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vec_real_type & v = vals[D.first].set_vec_real(unsigned(npts)); - Spline const * p_spl = m_splines[size_t(D.second)]; - for ( size_t i = 0; i < size_t(npts); ++i ) v[i] = p_spl->eval(vec[i]); - } - } - - void - SplineSet::eval( - real_type x, - vec_string_type const & columns, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vals[*is] = p_spl->eval(x); - } - } - - void - SplineSet::eval( - vec_real_type const & vec, - vec_string_type const & columns, - GenericContainer & gc - ) const { - integer npts = integer(vec.size()); - map_type & vals = gc.set_map(); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vec_real_type & v = vals[*is].set_vec_real(unsigned(npts)); - for ( size_t i = 0; i < size_t(npts); ++i ) v[i] = p_spl->eval(vec[i]); - } - } - - void - SplineSet::eval2( - real_type zeta, - integer indep, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - real_type x; - intersect( indep, zeta, x ); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first] = m_splines[size_t(D.second)]->eval(x); - } - } - - void - SplineSet::eval2( - vec_real_type const & zetas, - integer indep, - GenericContainer & gc - ) const { - integer npts = integer(zetas.size()); - map_type & vals = gc.set_map(); - - // preallocation - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first].set_vec_real(unsigned(npts)); - } - - for ( size_t i = 0; i < size_t(npts); ++i ) { - real_type x; - intersect( indep, zetas[i], x ); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vec_real_type & v = vals[D.first].get_vec_real(); - v[i] = m_splines[size_t(D.second)]->eval(x); - } - } - } - - void - SplineSet::eval2( - real_type zeta, - integer indep, - vec_string_type const & columns, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - real_type x; - intersect( indep, zeta, x ); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vals[*is] = p_spl->eval(x); - } - } - - void - SplineSet::eval2( - vec_real_type const & zetas, - integer indep, - vec_string_type const & columns, - GenericContainer & gc - ) const { - integer npts = integer(zetas.size()); - map_type & vals = gc.set_map(); - - // preallocation - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) - vals[*is].set_vec_real(unsigned(npts)); - - for ( size_t i = 0; i < size_t(npts); ++i ) { - real_type x; - intersect( indep, zetas[i], x ); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - vec_real_type & v = vals[*is].get_vec_real(); - Spline const * p_spl = getSpline( is->c_str() ); - v[i] = p_spl->eval(x); - } - } - } - - /* - // __ _ _ _ _ _ _ - // / _(_)_ __ ___| |_ __| | ___ _ __(_)_ ____ _| |_(_)_ _____ - // | |_| | '__/ __| __| / _` |/ _ \ '__| \ \ / / _` | __| \ \ / / _ \ - // | _| | | \__ \ |_ | (_| | __/ | | |\ V / (_| | |_| |\ V / __/ - // |_| |_|_| |___/\__| \__,_|\___|_| |_| \_/ \__,_|\__|_| \_/ \___| - */ - void - SplineSet::eval_D( real_type x, GenericContainer & gc ) const { - map_type & vals = gc.set_map(); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first] = m_splines[size_t(D.second)]->eval_D(x); - } - } - - void - SplineSet::eval_D( vec_real_type const & vec, GenericContainer & gc ) const { - integer npts = integer(vec.size()); - map_type & vals = gc.set_map(); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vec_real_type & v = vals[D.first].set_vec_real(unsigned(npts)); - Spline const * p_spl = m_splines[size_t(D.second)]; - for ( size_t i = 0; i < size_t(npts); ++i ) v[i] = p_spl->eval_D(vec[i]); - } - } - - void - SplineSet::eval_D( - real_type x, - vec_string_type const & columns, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vals[*is] = p_spl->eval_D(x); - } - } - - void - SplineSet::eval_D( - vec_real_type const & vec, - vec_string_type const & columns, - GenericContainer & gc - ) const { - integer npts = integer(vec.size()); - map_type & vals = gc.set_map(); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vec_real_type & v = vals[*is].set_vec_real(unsigned(npts)); - for ( size_t i = 0; i < size_t(npts); ++i ) v[i] = p_spl->eval_D(vec[i]); - } - } - - void - SplineSet::eval2_D( - real_type zeta, - integer indep, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - real_type x; - intersect( indep, zeta, x ); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first] = m_splines[size_t(D.second)]->eval_D(x); - } - } - - void - SplineSet::eval2_D( - vec_real_type const & zetas, - integer indep, - GenericContainer & gc - ) const { - integer npts = integer(zetas.size()); - map_type & vals = gc.set_map(); - - // preallocation - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first].set_vec_real(unsigned(npts)); - } - - for ( size_t i = 0; i < size_t(npts); ++i ) { - real_type x; - intersect( indep, zetas[i], x ); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vec_real_type & v = vals[D.first].get_vec_real(); - v[i] = m_splines[size_t(D.second)]->eval_D(x); - } - } - } - - void - SplineSet::eval2_D( - real_type zeta, - integer indep, - vec_string_type const & columns, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - real_type x; - intersect( indep, zeta, x ); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vals[*is] = p_spl->eval_D(x); - } - } - - void - SplineSet::eval2_D( - vec_real_type const & zetas, - integer indep, - vec_string_type const & columns, - GenericContainer & gc - ) const { - integer npts = integer(zetas.size()); - map_type & vals = gc.set_map(); - - // preallocation - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) - vals[*is].set_vec_real(unsigned(npts)); - - for ( size_t i = 0; i < size_t(npts); ++i ) { - real_type x; - intersect( indep, zetas[i], x ); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - vec_real_type & v = vals[*is].get_vec_real(); - Spline const * p_spl = getSpline( is->c_str() ); - v[i] = p_spl->eval_D(x); - } - } - } - - /* _ _ _ _ _ - // ___ ___ ___ ___ _ __ __| | __| | ___ _ __(_)_ ____ _| |_(_)_ _____ - // / __|/ _ \/ __/ _ \| '_ \ / _` | / _` |/ _ \ '__| \ \ / / _` | __| \ \ / / _ \ - // \__ \ __/ (_| (_) | | | | (_| | | (_| | __/ | | |\ V / (_| | |_| |\ V / __/ - // |___/\___|\___\___/|_| |_|\__,_| \__,_|\___|_| |_| \_/ \__,_|\__|_| \_/ \___| - */ - void - SplineSet::eval_DD( real_type x, GenericContainer & gc ) const { - map_type & vals = gc.set_map(); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first] = m_splines[size_t(D.second)]->eval_DD(x); - } - } - - void - SplineSet::eval_DD( vec_real_type const & vec, GenericContainer & gc ) const { - integer npts = integer(vec.size()); - map_type & vals = gc.set_map(); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vec_real_type & v = vals[D.first].set_vec_real(unsigned(npts)); - Spline const * p_spl = m_splines[size_t(D.second)]; - for ( size_t i = 0; i < size_t(npts); ++i ) v[i] = p_spl->eval_DD(vec[i]); - } - } - - void - SplineSet::eval_DD( - real_type x, - vec_string_type const & columns, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vals[*is] = p_spl->eval_DD(x); - } - } - - void - SplineSet::eval_DD( - vec_real_type const & vec, - vec_string_type const & columns, - GenericContainer & gc - ) const { - integer npts = integer(vec.size()); - map_type & vals = gc.set_map(); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vec_real_type & v = vals[*is].set_vec_real(unsigned(npts)); - for ( size_t i = 0; i < size_t(npts); ++i ) v[i] = p_spl->eval_DD(vec[i]); - } - } - - void - SplineSet::eval2_DD( - real_type zeta, - integer indep, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - real_type x; - intersect( indep, zeta, x ); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first] = m_splines[size_t(D.second)]->eval_DD(x); - } - } - - void - SplineSet::eval2_DD( - vec_real_type const & zetas, - integer indep, - GenericContainer & gc - ) const { - integer npts = integer(zetas.size()); - map_type & vals = gc.set_map(); - - // preallocation - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first].set_vec_real(unsigned(npts)); - } - - for ( size_t i = 0; i < size_t(npts); ++i ) { - real_type x; - intersect( indep, zetas[i], x ); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vec_real_type & v = vals[D.first].get_vec_real(); - v[i] = m_splines[size_t(D.second)]->eval_DD(x); - } - } - } - - void - SplineSet::eval2_DD( - real_type zeta, - integer indep, - vec_string_type const & columns, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - real_type x; - intersect( indep, zeta, x ); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vals[*is] = p_spl->eval_DD(x); - } - } - - void - SplineSet::eval2_DD( - vec_real_type const & zetas, - integer indep, - vec_string_type const & columns, - GenericContainer & gc - ) const { - integer npts = integer(zetas.size()); - map_type & vals = gc.set_map(); - - // preallocation - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) - vals[*is].set_vec_real(unsigned(npts)); - - for ( size_t i = 0; i < size_t(npts); ++i ) { - real_type x; - intersect( indep, zetas[i], x ); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - vec_real_type & v = vals[*is].get_vec_real(); - Spline const * p_spl = getSpline( is->c_str() ); - v[i] = p_spl->eval_DD(x); - } - } - } - - /* - // _ _ _ _ _ _ _ _ - // | |_| |__ (_)_ __ __| | __| | ___ _ __(_)_ ____ _| |_(_)_ _____ - // | __| '_ \| | '__/ _` | / _` |/ _ \ '__| \ \ / / _` | __| \ \ / / _ \ - // | |_| | | | | | | (_| | | (_| | __/ | | |\ V / (_| | |_| |\ V / __/ - // \__|_| |_|_|_| \__,_| \__,_|\___|_| |_| \_/ \__,_|\__|_| \_/ \___| - */ - void - SplineSet::eval_DDD( real_type x, GenericContainer & gc ) const { - map_type & vals = gc.set_map(); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first] = m_splines[size_t(D.second)]->eval_DDD(x); - } - } - - void - SplineSet::eval_DDD( - vec_real_type const & vec, - GenericContainer & gc - ) const { - integer npts = integer(vec.size()); - map_type & vals = gc.set_map(); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vec_real_type & v = vals[D.first].set_vec_real(unsigned(npts)); - Spline const * p_spl = m_splines[size_t(D.second)]; - for ( size_t i = 0; i < size_t(npts); ++i ) v[i] = p_spl->eval_DDD(vec[i]); - } - } - - void - SplineSet::eval_DDD( - real_type x, - vec_string_type const & columns, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vals[*is] = p_spl->eval_DDD(x); - } - } - - void - SplineSet::eval_DDD( - vec_real_type const & vec, - vec_string_type const & columns, - GenericContainer & gc - ) const { - integer npts = integer(vec.size()); - map_type & vals = gc.set_map(); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vec_real_type & v = vals[*is].set_vec_real(unsigned(npts)); - for ( size_t i = 0; i < size_t(npts); ++i ) v[i] = p_spl->eval_DDD(vec[i]); - } - } - - void - SplineSet::eval2_DDD( - real_type zeta, - integer indep, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - real_type x; - intersect( indep, zeta, x ); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first] = m_splines[size_t(D.second)]->eval_DDD(x); - } - } - - void - SplineSet::eval2_DDD( - vec_real_type const & zetas, - integer indep, - GenericContainer & gc - ) const { - integer npts = integer(zetas.size()); - map_type & vals = gc.set_map(); - - // preallocation - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vals[D.first].set_vec_real(unsigned(npts)); - } - - for ( size_t i = 0; i < size_t(npts); ++i ) { - real_type x; - intersect( indep, zetas[i], x ); - for ( integer pos = 0; pos < m_header_to_position.n_elem(); ++pos ) { - BinarySearch::DATA_TYPE const & D = m_header_to_position.get_elem( pos ); - vec_real_type & v = vals[D.first].get_vec_real(); - v[i] = m_splines[size_t(D.second)]->eval_DDD(x); - } - } - } - - void - SplineSet::eval2_DDD( - real_type zeta, - integer indep, - vec_string_type const & columns, - GenericContainer & gc - ) const { - map_type & vals = gc.set_map(); - real_type x; - intersect( indep, zeta, x ); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - Spline const * p_spl = getSpline( is->c_str() ); - vals[*is] = p_spl->eval_DDD(x); - } - } - - void - SplineSet::eval2_DDD( - vec_real_type const & zetas, - integer indep, - vec_string_type const & columns, - GenericContainer & gc - ) const { - integer npts = integer(zetas.size()); - map_type & vals = gc.set_map(); - - // preallocation - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) - vals[*is].set_vec_real( unsigned(npts) ); - - for ( size_t i = 0; i < size_t(npts); ++i ) { - real_type x; - intersect( indep, zetas[i], x ); - for ( vec_string_type::const_iterator is = columns.begin(); - is != columns.end(); ++is ) { - vec_real_type & v = vals[*is].get_vec_real(); - Spline const * p_spl = getSpline( is->c_str() ); - v[i] = p_spl->eval_DDD(x); - } - } - } - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.rst.txt deleted file mode 100644 index 678743c1..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.rst.txt +++ /dev/null @@ -1,563 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc: - -Program Listing for File SplineVec.cc -===================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineVec.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - namespace Splines { - - using std::abs; - using std::sqrt; - - using GenericContainerNamespace::mat_real_type; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SplineVec::SplineVec( string const & name ) - : m_name(name) - , m_baseValue(name+"_values") - , m_basePointer(name+"_pointers") - , m_dim(0) - , m_npts(0) - , m_curve_is_closed(false) - , m_curve_can_extend(true) - , m_X(nullptr) - , m_Y(nullptr) - , m_Yp(nullptr) - { - initLastInterval(); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SplineVec::~SplineVec() { - m_baseValue.free(); - m_basePointer.free(); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer - SplineVec::search( real_type & x ) const { - UTILS_ASSERT0( m_npts > 0, "in SplineVec::search(...), npts == 0!" ); - bool ok; - integer * p_lastInterval = m_bs.search( std::this_thread::get_id(), ok ); - if ( !ok ) *p_lastInterval = 0; - Utils::searchInterval( - m_npts, - m_X, - x, - *p_lastInterval, - m_curve_is_closed, - m_curve_can_extend - ); - return *p_lastInterval; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::initLastInterval() { - bool ok; - integer * p_lastInterval = m_bs.search( std::this_thread::get_id(), ok ); - *p_lastInterval = 0; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - string - SplineVec::info() const { - return fmt::format( - "SplineVec[{}] n.points = {} dim = {}", name(), m_npts, m_dim - ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::dump_table( ostream_type & stream, integer num_points ) const { - vector vals; - stream << 's'; - for ( integer i = 0; i < m_dim; ++i ) stream << '\t' << i; - stream << '\n'; - for ( integer j = 0; j < num_points; ++j ) { - real_type s = xMin() + ((xMax()-xMin())*j)/(num_points-1); - this->eval( s, vals ); - stream << s; - for ( integer i = 0; i < m_dim; ++i ) - stream << '\t' << vals[size_t(i)]; - stream << '\n'; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::allocate( integer dim, integer npts ) { - - UTILS_ASSERT( - dim > 0, "SplineVec::build expected positive dim = {}\n", dim - ); - UTILS_ASSERT( - npts > 1, "SplineVec::build expected npts = {} greather than 1\n", npts - ); - m_dim = dim; - m_npts = npts; - - m_baseValue.reallocate( size_t((2*dim+1)*npts) ); - m_basePointer.reallocate( size_t(2*dim) ); - - m_Y = m_basePointer(size_t(m_dim)); - m_Yp = m_basePointer(size_t(m_dim)); - m_X = m_baseValue(size_t(m_npts)); - - for ( size_t spl = 0; spl < size_t(m_dim); ++spl ) { - m_Y[size_t(spl)] = m_baseValue(size_t(m_npts)); - m_Yp[size_t(spl)] = m_baseValue(size_t(m_npts)); - } - - m_baseValue . must_be_empty( "SplineVec::build, baseValue" ); - m_basePointer . must_be_empty( "SplineVec::build, basePointer" ); - - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::setup( - integer dim, - integer npts, - real_type const ** Y - ) { - allocate( dim, npts ); - for ( size_t spl = 0; spl < size_t(m_dim); ++spl ) - std::copy_n( Y[spl], m_npts, m_Y[spl] ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::setup( - integer dim, - integer npts, - real_type const * Y, - integer ldY - ) { - allocate( dim, npts ); - for ( size_t spl = 0; spl < size_t(m_dim); ++spl ) - for ( size_t j = 0; j < size_t(m_npts); ++j ) - m_Y[spl][j] = Y[spl+j*size_t(ldY)]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::setKnots( real_type const * X ) { - std::copy_n( X, m_npts, m_X ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::computeChords() { - size_t nn = size_t(m_npts-1); - switch ( m_dim ) { - case 2: - for ( size_t j = 0; j < nn; ++j ) { - real_type dx = m_Y[0][j+1] - m_Y[0][j]; - real_type dy = m_Y[1][j+1] - m_Y[1][j]; - m_X[j] = hypot( dx, dy ); - } - break; - case 3: - for ( size_t j = 0; j < nn; ++j ) { - real_type dx = m_Y[0][j+1] - m_Y[0][j]; - real_type dy = m_Y[1][j+1] - m_Y[1][j]; - real_type dz = m_Y[2][j+1] - m_Y[2][j]; - m_X[j] = hypot( dx, hypot( dy, dz ) ); - } - break; - default: - for ( size_t j = 0; j < nn; ++j ) { - real_type l = 0; - for ( size_t k = 0; k < size_t(m_dim); ++k ) { - real_type d = m_Y[k][j+1] - m_Y[k][j]; - l += d*d; - } - m_X[j] = sqrt(l); - } - break; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::setKnotsChordLength() { - computeChords(); - size_t nn = size_t(m_npts-1); - real_type acc = 0; - for ( size_t j = 0; j <= nn; ++j ) { - real_type l = m_X[j]; - m_X[j] = acc; - acc += l; - } - for ( size_t j = 1; j < nn; ++j ) m_X[j] /= acc; - m_X[nn] = 1; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::setKnotsCentripetal() { - computeChords(); - size_t nn = size_t(m_npts-1); - real_type acc = 0; - for ( size_t j = 0; j <= nn; ++j ) { - real_type l = sqrt(m_X[j]); - m_X[j] = acc; - acc += l; - } - for ( size_t j = 1; j < nn; ++j ) m_X[j] /= acc; - m_X[nn] = 1; - } - - void - SplineVec::CatmullRom() { - size_t n = size_t(m_npts-1); - size_t d = size_t(m_dim); - real_type l1, l2, ll, a, b; - for ( size_t j = 1; j < n; ++j ) { - l1 = m_X[j] - m_X[j-1]; - l2 = m_X[j+1] - m_X[j]; - ll = l1+l2; - a = (l2/l1)/ll; - b = (l1/l2)/ll; - for ( size_t k = 0; k < d; ++k ) - m_Yp[k][j] = a*( m_Y[k][j] - m_Y[k][j-1] ) + - b*( m_Y[k][j+1] - m_Y[k][j] ); - } - - l1 = m_X[1] - m_X[0]; - l2 = m_X[2] - m_X[1]; - ll = l1+l2; - a = ll/(l1*l2); - b = (l1/l2)/ll; - for ( size_t k = 0; k < d; ++k ) - m_Yp[k][0] = a*( m_Y[k][1] - m_Y[k][0] ) - - b*( m_Y[k][2] - m_Y[k][0] ); - - l1 = m_X[n] - m_X[n-1]; - l2 = m_X[n-1] - m_X[n-2]; - ll = l1+l2; - a = ll/(l1*l2); - b = (l1/l2)/ll; - for ( size_t k = 0; k < d; ++k ) - m_Yp[k][n] = b*( m_Y[k][n-2] - m_Y[k][n] ) - - a*( m_Y[k][n-1] - m_Y[k][n] ); - - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineVec::operator () ( real_type x, integer j ) const { - size_t i = size_t(this->search( x )); - real_type base[4]; - Hermite3( x-m_X[i], m_X[i+1]-m_X[i], base ); - return base[0] * m_Y[size_t(j)][i] + - base[1] * m_Y[size_t(j)][i+1] + - base[2] * m_Yp[size_t(j)][i] + - base[3] * m_Yp[size_t(j)][i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineVec::D( real_type x, integer j ) const { - size_t i = size_t(this->search( x )); - real_type base_D[4]; - Hermite3_D( x-m_X[i], m_X[i+1]-m_X[i], base_D ); - return base_D[0] * m_Y[size_t(j)][i] + - base_D[1] * m_Y[size_t(j)][i+1] + - base_D[2] * m_Yp[size_t(j)][i] + - base_D[3] * m_Yp[size_t(j)][i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineVec::DD( real_type x, integer j ) const { - size_t i = size_t(this->search( x )); - real_type base_DD[4]; - Hermite3_DD( x-m_X[i], m_X[i+1]-m_X[i], base_DD ); - return base_DD[0] * m_Y[size_t(j)][i] + - base_DD[1] * m_Y[size_t(j)][i+1] + - base_DD[2] * m_Yp[size_t(j)][i] + - base_DD[3] * m_Yp[size_t(j)][i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineVec::DDD( real_type x, integer j ) const { - size_t i = size_t(this->search( x )); - real_type base_DDD[4]; - Hermite3_DDD( x-m_X[i], m_X[i+1]-m_X[i], base_DDD ); - return base_DDD[0] * m_Y[size_t(j)][i] + - base_DDD[1] * m_Y[size_t(j)][i+1] + - base_DDD[2] * m_Yp[size_t(j)][i] + - base_DDD[3] * m_Yp[size_t(j)][i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval( - real_type x, - real_type * const vals, - integer inc - ) const { - size_t i = size_t(this->search( x )); - real_type base[4]; - Hermite3( x-m_X[i], m_X[i+1]-m_X[i], base ); - real_type * v = vals; - for ( size_t j = 0; j < size_t(m_dim); ++j, v += inc ) - *v = base[0] * m_Y[j][i] + - base[1] * m_Y[j][i+1] + - base[2] * m_Yp[j][i] + - base[3] * m_Yp[j][i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval_D( - real_type x, - real_type * const vals, - integer inc - ) const { - size_t i = size_t(this->search( x )); - real_type base_D[4]; - Hermite3_D( x-m_X[i], m_X[i+1]-m_X[i], base_D ); - real_type * v = vals; - for ( size_t j = 0; j < size_t(m_dim); ++j, v += inc ) - *v = base_D[0] * m_Y[j][i] + - base_D[1] * m_Y[j][i+1] + - base_D[2] * m_Yp[j][i] + - base_D[3] * m_Yp[j][i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval_DD( - real_type x, - real_type * const vals, - integer inc - ) const { - size_t i = size_t(this->search( x )); - real_type base_DD[4]; - Hermite3_DD( x-m_X[i], m_X[i+1]-m_X[i], base_DD ); - real_type * v = vals; - for ( size_t j = 0; j < size_t(m_dim); ++j, v += inc ) - *v = base_DD[0] * m_Y[j][i] + - base_DD[1] * m_Y[j][i+1] + - base_DD[2] * m_Yp[j][i] + - base_DD[3] * m_Yp[j][i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval_DDD( - real_type x, - real_type * const vals, - integer inc - ) const { - size_t i = size_t(this->search( x )); - real_type base_DDD[4]; - Hermite3_DDD( x-m_X[i], m_X[i+1]-m_X[i], base_DDD ); - real_type * v = vals; - for ( size_t j = 0; j < size_t(m_dim); ++j, v += inc ) - *v = base_DDD[0] * m_Y[j][i] + - base_DDD[1] * m_Y[j][i+1] + - base_DDD[2] * m_Yp[j][i] + - base_DDD[3] * m_Yp[j][i+1]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval( real_type x, vector & vals ) const { - vals.resize(size_t(m_dim)); - eval( x, &vals.front(), 1 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval_D( real_type x, vector & vals ) const { - vals.resize(size_t(m_dim)); - eval_D( x, &vals.front(), 1 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval_DD( real_type x, vector & vals ) const { - vals.resize(size_t(m_dim)); - eval_DD( x, &vals.front(), 1 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval_DDD( real_type x, vector & vals ) const { - vals.resize(size_t(m_dim)); - eval_DDD( x, &vals.front(), 1 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineVec::curvature( real_type x ) const { - real_type D[10], DD[10]; - this->eval_D( x, D, 1 ); - this->eval_DD( x, DD, 1 ); - real_type x_1 = D[0]; - real_type x_2 = DD[0]; - real_type y_1 = D[1]; - real_type y_2 = DD[1]; - real_type t4 = x_1 * x_1; - real_type t5 = y_1 * y_1; - real_type t6 = t4 + t5; - real_type t7 = sqrt(t6); - return (x_1 * y_2 - y_1 * x_2) / ( t6 * t7 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - SplineVec::curvature_D( real_type x ) const { - real_type D[10], DD[10], DDD[10]; - this->eval_D( x, D, 1 ); - this->eval_DD( x, DD, 1 ); - this->eval_DDD( x, DDD, 1 ); - real_type x_1 = D[0]; - real_type x_2 = DD[0]; - real_type x_3 = DDD[0]; - real_type y_1 = D[1]; - real_type y_2 = DD[1]; - real_type y_3 = DDD[1]; - real_type t1 = x_1 * x_1; - real_type t9 = x_2 * x_2; - real_type t13 = y_1 * y_1; - real_type t17 = y_2 * y_2; - real_type t26 = t1 + t13; - real_type t27 = t26 * t26; - real_type t28 = sqrt(t26); - real_type aa = y_3 * x_1 - y_1 * x_3; - real_type bb = 3 * y_2 * x_2; - return ( t1 * ( aa - bb ) + t13 * ( aa + bb ) - + 3 * x_1 * y_1 * ( t9 - t17 ) ) / ( t28 * t27 ); - } - - void - SplineVec::eval( - vec_real_type const & x, - GenericContainer & vals - ) const { - mat_real_type & m = vals.set_mat_real( unsigned(m_dim), unsigned(x.size()) ); - real_type * v = &m.front(); - real_type const * px = &x.front(); - integer j = integer(x.size()); - while ( j-- > 0 ) { eval( *px++, v, 1 ); v += m_dim; } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval_D( - vec_real_type const & x, - GenericContainer & vals - ) const { - mat_real_type & m = vals.set_mat_real( unsigned(m_dim), unsigned(x.size()) ); - real_type * v = &m.front(); - real_type const * px = &x.front(); - integer j = integer(x.size()); - while ( j-- > 0 ) { eval_D( *px++, v, 1 ); v += m_dim; } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval_DD( - vec_real_type const & x, - GenericContainer & vals - ) const { - mat_real_type & m = vals.set_mat_real( unsigned(m_dim), unsigned(x.size()) ); - real_type * v = &m.front(); - real_type const * px = &x.front(); - integer j = integer(x.size()); - while ( j-- > 0 ) { eval_DD( *px++, v, 1 ); v += m_dim; } - - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::eval_DDD( - vec_real_type const & x, - GenericContainer & vals - ) const { - mat_real_type & m = vals.set_mat_real( unsigned(m_dim), unsigned(x.size()) ); - real_type * v = &m.front(); - real_type const * px = &x.front(); - integer j = integer(x.size()); - while ( j-- > 0 ) { this->eval_DDD( *px++, v, 1 ); v += m_dim; } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineVec::setup( GenericContainer const & ) { - //allocate( integer dim, integer npts ); - // DA COMPLETARE - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.rst.txt deleted file mode 100644 index cef92d58..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.rst.txt +++ /dev/null @@ -1,328 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx: - -Program Listing for File SplineVec.hxx -====================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineVec.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ____ _ _ __ __ - | / ___| _ __ | (_)_ __ __\ \ / /__ ___ - | \___ \| '_ \| | | '_ \ / _ \ \ / / _ \/ __| - | ___) | |_) | | | | | | __/\ V / __/ (__ - | |____/| .__/|_|_|_| |_|\___| \_/ \___|\___| - | |_| - \*/ - - namespace Splines { - - class SplineVec { - - SplineVec( SplineVec const & ) = delete; - SplineVec const & operator = ( SplineVec const & ) = delete; - - protected: - - string const m_name; - - Utils::Malloc m_baseValue; - Utils::Malloc m_basePointer; - - integer m_dim; - integer m_npts; - bool m_curve_is_closed; - bool m_curve_can_extend; - - real_type * m_X; - real_type ** m_Y; - real_type ** m_Yp; - - mutable Utils::BinarySearch m_bs; - - void initLastInterval(); - - void - allocate( integer dim, integer npts ); - - void - computeChords(); - - public: - - SplineVec( string const & name = "SplineVec" ); - - virtual - ~SplineVec(); - - integer search( real_type & x ) const; - - bool is_closed() const { return m_curve_is_closed; } - void make_closed() { m_curve_is_closed = true; } - void make_open() { m_curve_is_closed = false; } - - bool can_extend() const { return m_curve_can_extend; } - void make_unbounded() { m_curve_can_extend = true; } - void make_buonded() { m_curve_can_extend = false; } - - string const & name() const { return m_name; } - - integer - numPoints() const - { return m_npts; } - - integer - dimension() const - { return m_dim; } - - real_type const * - xNodes() const - { return m_X; } - - real_type - xNode( integer npt ) const - { return m_X[size_t(npt)]; } - - real_type - yNode( integer npt, integer j ) const - { return m_Y[size_t(j)][size_t(npt)]; } - - real_type - xMin() const - { return m_X[0]; } - - real_type - xMax() const - { return m_X[size_t(m_npts-1)]; } - - real_type - operator () ( real_type x, integer i ) const; - - real_type - eval( real_type x, integer i ) const - { return operator() (x,i); } - - real_type - D( real_type x, integer i ) const; - - real_type - eval_D( real_type x, integer i ) const - { return this->D(x,i); } - - real_type - DD( real_type x, integer i ) const; - - real_type - eval_DD( real_type x, integer i ) const - { return this->DD(x,i); } - - real_type - DDD( real_type x, integer i ) const; - - real_type - eval_DDD( real_type x, integer i ) const - { return this->DDD(x,i); } - - real_type - DDDD( real_type x, integer i ) const; - - real_type - eval_DDDD( real_type x, integer i ) const - { return this->DDDD(x,i); } - - real_type - DDDDD( real_type x, integer i ) const; - - real_type - eval_DDDDD( real_type x, integer i ) const - { return this->DDDDD(x,i); } - - void - eval( - real_type x, - real_type * const vals, - integer inc - ) const; - - void - eval_D( - real_type x, - real_type * const vals, - integer inc - ) const; - - void - eval_DD( - real_type x, - real_type * const vals, - integer inc - ) const; - - void - eval_DDD( - real_type x, - real_type * const vals, - integer inc - ) const; - - void - eval_DDDD( - real_type x, - real_type * const vals, - integer inc - ) const; - - void - eval_DDDDD( - real_type x, - real_type * const vals, - integer inc - ) const; - - void - eval( real_type x, vector & vals ) const; - - void - eval_D( real_type x, vector & vals ) const; - - void - eval_DD( real_type x, vector & vals ) const; - - void - eval_DDD( real_type x, vector & vals ) const; - - void - eval_DDDD( real_type x, vector & vals ) const; - - void - eval_DDDDD( real_type x, vector & vals ) const; - - void - eval( real_type x, GenericContainer & vals ) const - { eval( x, vals.set_vec_real() ); } - - void - eval_D( real_type x, GenericContainer & vals ) const - { eval_D( x, vals.set_vec_real() ); } - - void - eval_DD( real_type x, GenericContainer & vals ) const - { eval_DD( x, vals.set_vec_real() ); } - - void - eval_DDD( real_type x, GenericContainer & vals ) const - { eval_DDD( x, vals.set_vec_real() ); } - - void - eval_DDDD( real_type x, GenericContainer & vals ) const - { eval_DDDD( x, vals.set_vec_real() ); } - - void - eval_DDDDD( real_type x, GenericContainer & vals ) const - { eval_DDDDD( x, vals.set_vec_real() ); } - - void - eval( vec_real_type const & x, GenericContainer & vals ) const; - - void - eval_D( vec_real_type const & x, GenericContainer & vals ) const; - - void - eval_DD( vec_real_type const & x, GenericContainer & vals ) const; - - void - eval_DDD( vec_real_type const & x, GenericContainer & vals ) const; - - void - eval_DDDD( vec_real_type const & x, GenericContainer & vals ) const; - - void - eval_DDDDD( vec_real_type const & x, GenericContainer & vals ) const; - - void - setup( - integer dim, - integer npts, - real_type const ** Y - ); - - void - setup( - integer dim, - integer npts, - real_type const * Y, - integer ldY - ); - - void - setKnots( real_type const * X ); - - void - setKnotsChordLength(); - - void - setKnotsCentripetal(); - - void - setKnotsFoley(); - - void - CatmullRom(); - - real_type - curvature( real_type x ) const; - - real_type - curvature_D( real_type x ) const; - - virtual - void - setup( GenericContainer const & gc ); - - void - build( GenericContainer const & gc ) - { setup(gc); } - - virtual - unsigned - type() const - { return SPLINE_VEC_TYPE; } - - string - info() const; - - void - info( ostream_type & stream ) const - { stream << this->info() << '\n'; } - - void - dump_table( ostream_type & s, integer num_points ) const; - - }; - - } - - // EOF: SplineSet.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.rst.txt deleted file mode 100644 index 30997431..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.rst.txt +++ /dev/null @@ -1,554 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc: - -Program Listing for File Splines.cc -=================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "SplinesUtils.hh" - - #include - #include // std::numeric_limits - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #ifdef SPLINES_OS_OSX - #define UNW_LOCAL_ONLY - #include - #include - #endif - - namespace Splines { - - using std::abs; - using std::max; - using std::min; - - // cbrt is not available on WINDOWS? or C++ < C++11? - #ifdef _MSC_VER - using std::sqrt; - using std::pow; - static inline real_type cbrt( real_type x ) { return pow( x, 1.0/3.0 ); } - #else - using std::sqrt; - using std::pow; - using std::cbrt; - #endif - - /*\ - | ____ _ _ _ _ - | | _ \ __ _ _ __ __ _ _ __ ___ ___| |_ _ __(_)______ _| |_(_) ___ _ __ - | | |_) / _` | '__/ _` | '_ ` _ \ / _ \ __| '__| |_ / _` | __| |/ _ \| '_ \ - | | __/ (_| | | | (_| | | | | | | __/ |_| | | |/ / (_| | |_| | (_) | | | | - | |_| \__,_|_| \__,_|_| |_| |_|\___|\__|_| |_/___\__,_|\__|_|\___/|_| |_| - | - \*/ - - void - uniform( - integer /* dim */, - integer npts, - real_type const * /* pnts */, - integer /* ld_pnts */, - real_type * t - ) { - t[0] = 0; - t[npts-1] = 1; - for ( integer k = 1; k < npts-1; ++k ) - t[k] = static_cast(k)/static_cast(npts); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - chordal( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type * t - ) { - t[0] = 0; - real_type const * p0 = pnts; - for ( integer k = 1; k < npts; ++k ) { - real_type const * p1 = p0 + ld_pnts; - real_type dst = 0; - for ( integer j = 0; j < dim; ++j ) { - real_type c = p1[j] - p0[j]; - dst += c*c; - } - t[k] = t[k-1] + sqrt(dst); - } - for ( integer k = 1; k < npts-1; ++k ) t[k] /= t[npts-1]; - t[npts-1] = 1; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - centripetal( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type alpha, - real_type * t - ) { - t[0] = 0; - real_type const * p0 = pnts; - for ( integer k = 1; k < npts; ++k ) { - real_type const * p1 = p0 + ld_pnts; - real_type dst = 0; - for ( integer j = 0; j < dim; ++j ) { - real_type c = p1[j] - p0[j]; - dst += c*c; - } - t[k] = t[k-1] + pow(dst,alpha/2); - } - for ( integer k = 1; k < npts-1; ++k ) t[k] /= t[npts-1]; - t[npts-1] = 1; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #if 0 - - void - universal( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type * t - ); // to be done - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - FoleyNielsen( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type * t - ); // to be done - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - FangHung( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type * t - ); // to be done - - #endif - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - char const * spline_type_1D[] = { - "constant", // 0 - "linear", // 1 - "cubic", // 2 - "akima", // 3 - "bessel", // 4 - "pchip", // 5 - "quintic", // 6 - "hermite", // 7 - "spline set", // 8 - "spline vec", // 9 - nullptr - }; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - SplineType1D - string_to_splineType( std::string const & nin ) { - std::string n = nin; - std::transform(n.begin(), n.end(), n.begin(), ::tolower); - for ( size_t j = 0; spline_type_1D[j] != nullptr; ++j ) { - if ( spline_type_1D[j] == n ) return SplineType1D(j); - } - throw std::runtime_error(fmt::format( "string_to_splineType({}) unknown type\n", n )); - } - - #endif - - /*\ - | ____ _ _ - | / ___| _ __ | (_)_ __ ___ - | \___ \| '_ \| | | '_ \ / _ \ - | ___) | |_) | | | | | | __/ - | |____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer - Spline::search( real_type & x ) const { - UTILS_ASSERT0( m_npts > 0, "in Spline::search(...), npts == 0!" ); - bool ok; - integer & lastInterval = *m_bs.search( std::this_thread::get_id(), ok ); - if ( !ok ) lastInterval = 0; - Utils::searchInterval( - m_npts, - m_X, - x, - lastInterval, - m_curve_is_closed, - m_curve_can_extend - ); - return lastInterval; - } - - void - Spline::initLastInterval() { - bool ok; - integer & lastInterval = *m_bs.search( std::this_thread::get_id(), ok ); - lastInterval = 0; - } - - integer - SplineSurf::search_x( real_type & x ) const { - bool ok; - integer & lastInterval = *m_bs_x.search( std::this_thread::get_id(), ok ); - if ( !ok ) lastInterval = 0; - Utils::searchInterval( - m_nx, - m_X, - x, - lastInterval, - m_x_closed, - m_x_can_extend - ); - return lastInterval; - } - - void - SplineSurf::initLastInterval_x() { - bool ok; - integer & lastInterval = *m_bs_x.search( std::this_thread::get_id(), ok ); - lastInterval = 0; - } - - integer - SplineSurf::search_y( real_type & y ) const { - bool ok; - integer & lastInterval = *m_bs_y.search( std::this_thread::get_id(), ok ); - if ( !ok ) lastInterval = 0; - Utils::searchInterval( - m_ny, - m_Y, - y, - lastInterval, - m_y_closed, - m_y_can_extend - ); - return lastInterval; - } - - void - SplineSurf::initLastInterval_y() { - bool ok; - integer & lastInterval = *m_bs_y.search( std::this_thread::get_id(), ok ); - lastInterval = 0; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - integer - checkCubicSplineMonotonicity( - real_type const * X, - real_type const * Y, - real_type const * Yp, - integer npts - ) { - // check monotonicity of data: (assuming X monotone) - integer flag = 1; - for ( size_t i = 1; i < size_t(npts); ++i ) { - if ( Y[i-1] > Y[i] ) return -2; // non monotone data - if ( Utils::isZero(Y[i-1]-Y[i]) && X[i-1] < X[i] ) flag = 0; // non strict monotone - } - // pag 146 Methods of Shape-Preserving Spline Approximation, K - for ( size_t i = 1; i < size_t(npts); ++i ) { - if ( X[i] <= X[i-1] ) continue; // skip duplicate points - real_type dd = (Y[i]-Y[i-1])/(X[i]-X[i-1]); - real_type m0 = Yp[i-1]/dd; - real_type m1 = Yp[i]/dd; - if ( m0 < 0 || m1 < 0 ) return -1; // non monotone - if ( m0 <= 3 && m1 <= 3 ) { - if ( flag > 0 && i > 1 && - (Utils::isZero(m0) || Utils::isZero(m0-3) ) ) flag = 0; - if ( flag > 0 && i < size_t(npts-1) && - (Utils::isZero(m1) || Utils::isZero(m1-3) ) ) flag = 0; - } else { - real_type tmp1 = 2*m0+m1-3; - real_type tmp2 = 2*(m0+m1-2); - real_type tmp3 = m0*tmp2-(tmp1*tmp1); - if ( tmp2 >= 0 ) { - if ( tmp3 < 0 ) return -1; // non monotone spline - } else { - if ( tmp3 > 0 ) return -1; - } - if ( Utils::isZero(tmp3) ) flag = 0; - } - } - return flag; // passed all check - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline::build( - real_type const * x, integer incx, - real_type const * y, integer incy, - integer n - ) { - reserve( n ); - for ( integer i = 0; i < n; ++i ) m_X[i] = x[i*incx]; - for ( integer i = 0; i < n; ++i ) m_Y[i] = y[i*incy]; - m_npts = n; - build(); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - string - Spline::info() const { - string res = fmt::format( - "Spline `{}` of type: {} of order: {}", - m_name, type_name(), order() - ); - if ( m_npts > 0 ) - res += fmt::format( - "\nxMin = {} xMax = {} yMin = {} yMax = {}", - xMin(), xMax(), yMin(), yMax() - ); - return res; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline::pushBack( real_type x, real_type y ) { - if ( m_npts > 0 ) { - UTILS_ASSERT( - x >= m_X[size_t(m_npts-1)], // ammetto punti doppi - "Spline[{}]::pushBack, non monotone insert at insert N.{}" - "\nX[{}] = {}\nX[{}] = {}\n", - m_name, m_npts, m_npts-1, m_X[size_t(m_npts-1)], m_npts, x - ); - } - if ( m_npts_reserved == 0 ) { - reserve( 2 ); - } else if ( m_npts >= m_npts_reserved ) { - // riallocazione & copia - integer saved_npts = m_npts; // salvo npts perche reserve lo azzera - Utils::Malloc mem("Spline::pushBack"); - mem.allocate( size_t(2*m_npts) ); - real_type * Xsaved = mem( size_t(m_npts) ); - real_type * Ysaved = mem( size_t(m_npts) ); - - std::copy_n( m_X, m_npts, Xsaved ); - std::copy_n( m_Y, m_npts, Ysaved ); - reserve( (m_npts+1) * 2 ); - m_npts = saved_npts; - std::copy_n( Xsaved, m_npts, m_X ); - std::copy_n( Ysaved, m_npts, m_Y ); - } - m_X[m_npts] = x; - m_Y[m_npts] = y; - ++m_npts; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline::setOrigin( real_type x0 ) { - real_type Tx = x0 - m_X[0]; - real_type *ix = m_X; - while ( ix < m_X+m_npts ) *ix++ += Tx; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline::setRange( real_type xmin, real_type xmax ) { - UTILS_ASSERT( - xmax > xmin, - "Spline[{}]::setRange({},{}) bad range ", m_name, xmin, xmax - ); - real_type S = (xmax - xmin) / ( m_X[m_npts-1] - m_X[0] ); - real_type Tx = xmin - S * m_X[0]; - for( real_type *ix = m_X; ix < m_X+m_npts; ++ix ) *ix = *ix * S + Tx; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline::dump( - ostream_type & s, - integer nintervals, - char const * header - ) const { - s << header << '\n'; - real_type dx = (xMax()-xMin())/nintervals; - for ( integer i = 0; i <= nintervals; ++i ) { - real_type x = xMin() + i*dx; - fmt::print( s, "{}\t{}\n", x, (*this)(x) ); - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - curvature( real_type s, Spline const & X, Spline const & Y ) { - real_type x_1 = X.D(s); - real_type x_2 = X.DD(s); - real_type y_1 = Y.D(s); - real_type y_2 = Y.DD(s); - real_type t4 = x_1 * x_1; - real_type t5 = y_1 * y_1; - real_type t6 = t4 + t5; - real_type t7 = sqrt(t6); - return (x_1 * y_2 - y_1 * x_2) / ( t6 * t7 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - curvature_D( real_type s, Spline const & X, Spline const & Y ) { - real_type x_1 = X.D(s); - real_type x_2 = X.DD(s); - real_type x_3 = X.DDD(s); - real_type y_1 = Y.D(s); - real_type y_2 = Y.DD(s); - real_type y_3 = Y.DDD(s); - real_type t1 = x_1 * x_1; - real_type t9 = x_2 * x_2; - real_type t13 = y_1 * y_1; - real_type t17 = y_2 * y_2; - real_type t26 = t1 + t13; - real_type t27 = t26 * t26; - real_type t28 = sqrt(t26); - real_type aa = y_3 * x_1 - y_1 * x_3; - real_type bb = 3 * y_2 * x_2; - return ( t1 * ( aa - bb ) + t13 * ( aa + bb ) - + 3 * x_1 * y_1 * ( t9 - t17 ) ) / ( t28 * t27 ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - curvature_DD( real_type s, Spline const & X, Spline const & Y ) { - real_type x_1 = X.D(s); - real_type x_2 = X.DD(s); - real_type x_3 = X.DDD(s); - real_type x_4 = X.DDDD(s); - real_type y_1 = Y.D(s); - real_type y_2 = Y.DD(s); - real_type y_3 = Y.DDD(s); - real_type y_4 = Y.DDDD(s); - - real_type t1 = y_1 * y_1; - real_type t2 = t1 * t1; - real_type t12 = x_2 * x_2; - real_type t13 = t12 * x_2; - real_type t15 = x_1 * x_3; - real_type t16 = 9 * t15; - real_type t17 = y_2 * y_2; - real_type t21 = x_1 * x_1; - real_type t22 = x_4 * t21; - real_type t26 = 9 * x_1 * y_2 * y_3; - real_type t30 = t21 * x_1; - real_type t40 = t17 * y_2; - real_type t64 = t21 + t1; - real_type t65 = t64 * t64; - real_type t67 = sqrt(t64); - return ( - t2 * (x_1 * y_4 + 4 * x_2 * y_3 + 5 * x_3 * y_2 - y_1 * x_4) - + t1 * y_1 * (3 * t13 + x_2 * (t16 - 12 * t17) - 2 * t22 - t26) - + t1 * ( x_1 * ( 12 * t40 - 33 * y_2 * t12 ) - + t21 * ( y_2 * x_3 - y_3 * x_2) - + 2 * y_4 * t30 ) - - y_1 * t21 * ( 12 * t13 - x_2 * (t16+33*t17) + t22 + t26 ) - + t30 * ( y_2 * (12 * t12 - 4 * t15) + y_4 * t21 - -5 * x_1 * x_2 * y_3 - 3 * t40) - ) / (t67*t65*t64); - } - - /* - // ____ ____ ____ _ - // / ___|/ ___| / ___| _ _ _ __ _ __ ___ _ __| |_ - // | | _| | \___ \| | | | '_ \| '_ \ / _ \| '__| __| - // | |_| | |___ ___) | |_| | |_) | |_) | (_) | | | |_ - // \____|\____| |____/ \__,_| .__/| .__/ \___/|_| \__| - // |_| |_| - */ - - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline::setup( GenericContainer const & gc ) { - /* - // gc["xdata"] - // gc["ydata"] - // - */ - string msg = fmt::format("Spline[{}]::setup( gc ):", m_name ); - UTILS_ASSERT( gc.exists("xdata"), "{} missing `xdata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ydata"), "{} missing `ydata` field!\n", msg ); - - GenericContainer const & gc_x = gc("xdata"); - GenericContainer const & gc_y = gc("ydata"); - - vec_real_type x, y; - { - std::string ff = fmt::format( "{}, field `xdata'", msg ); - gc_x.copyto_vec_real( x, ff.c_str() ); - } - { - std::string ff = fmt::format( "{}, field `ydata'", msg ); - gc_y.copyto_vec_real ( y, ff.c_str() ); - } - build( x, y ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.rst.txt deleted file mode 100644 index 8e0d3c7a..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.rst.txt +++ /dev/null @@ -1,896 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh: - -Program Listing for File Splines.hh -=================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines.hh``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #pragma once - - #ifndef SPLINES_HH - #define SPLINES_HH - - #ifdef __GNUC__ - #pragma GCC diagnostic push - #endif - - #ifdef __clang__ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - #include "SplinesConfig.hh" - #include - - namespace Splines { - - using std::vector; - using std::string; - using std::exception; - using std::runtime_error; - using std::basic_ostream; - using std::ostringstream; - using std::lower_bound; - using std::pair; - using std::cerr; - - typedef double real_type; - typedef int integer; - typedef basic_ostream ostream_type; - - void backtrace( ostream_type & ); - - typedef enum { - CONSTANT_TYPE = 0, - LINEAR_TYPE = 1, - CUBIC_TYPE = 2, - AKIMA_TYPE = 3, - BESSEL_TYPE = 4, - PCHIP_TYPE = 5, - QUINTIC_TYPE = 6, - HERMITE_TYPE = 7, - SPLINE_SET_TYPE = 8, - SPLINE_VEC_TYPE = 9 - } SplineType1D; - - typedef enum { - BILINEAR_TYPE = 0, - BICUBIC_TYPE = 1, - BIQUINTIC_TYPE = 2, - AKIMA2D_TYPE = 3 - } SplineType2D; - - extern char const *spline_type_1D[]; - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - extern SplineType1D string_to_splineType( string const & n ); - #endif - - using GenericContainerNamespace::GenericContainer; - using GenericContainerNamespace::vec_real_type; - using GenericContainerNamespace::vec_string_type; - using GenericContainerNamespace::vector_type; - using GenericContainerNamespace::map_type; - - /* - // _ _ _ _ - // | | | | ___ _ __ _ __ ___ (_) |_ ___ - // | |_| |/ _ \ '__| '_ ` _ \| | __/ _ \ - // | _ | __/ | | | | | | | | || __/ - // |_| |_|\___|_| |_| |_| |_|_|\__\___| - */ - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - void Hermite3( real_type x, real_type H, real_type base[4] ); - void Hermite3_D( real_type x, real_type H, real_type base_D[4] ); - void Hermite3_DD( real_type x, real_type H, real_type base_DD[4] ); - void Hermite3_DDD( real_type x, real_type H, real_type base_DDD[4] ); - - void Hermite5( real_type x, real_type H, real_type base[6] ); - void Hermite5_D( real_type x, real_type H, real_type base_D[6] ); - void Hermite5_DD( real_type x, real_type H, real_type base_DD[6] ); - void Hermite5_DDD( real_type x, real_type H, real_type base_DDD[6] ); - void Hermite5_DDDD( real_type x, real_type H, real_type base_DDDD[6] ); - void Hermite5_DDDDD( real_type x, real_type H, real_type base_DDDDD[6] ); - - #endif - - /* - // ____ _ _ _ - // | __ )(_) (_)_ __ ___ __ _ _ __ - // | _ \| | | | '_ \ / _ \/ _` | '__| - // | |_) | | | | | | | __/ (_| | | - // |____/|_|_|_|_| |_|\___|\__,_|_| - */ - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - real_type - bilinear3( - real_type const p[4], - real_type const M[4][4], - real_type const q[4] - ); - - real_type - bilinear5( - real_type const p[6], - real_type const M[6][6], - real_type const q[6] - ); - - integer - checkCubicSplineMonotonicity( - real_type const * X, - real_type const * Y, - real_type const * Yp, - integer npts - ); - - #endif - - /*\ - | ____ _ _ _ _ - | | _ \ __ _ _ __ __ _ _ __ ___ ___| |_ _ __(_)______ _| |_(_) ___ _ __ - | | |_) / _` | '__/ _` | '_ ` _ \ / _ \ __| '__| |_ / _` | __| |/ _ \| '_ \ - | | __/ (_| | | | (_| | | | | | | __/ |_| | | |/ / (_| | |_| | (_) | | | | - | |_| \__,_|_| \__,_|_| |_| |_|\___|\__|_| |_/___\__,_|\__|_|\___/|_| |_| - | - \*/ - - void - uniform( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type * t - ); - - void - chordal( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type * t - ); - - void - centripetal( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type alpha, - real_type * t - ); - - void - universal( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type * t - ); - - void - FoleyNielsen( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type * t - ); - - void - FangHung( - integer dim, - integer npts, - real_type const * pnts, - integer ld_pnts, - real_type * t - ); - - /*\ - | ____ _ _ - | / ___| _ __ | (_)_ __ ___ - | \___ \| '_ \| | | '_ \ / _ \ - | ___) | |_) | | | | | | __/ - | |____/| .__/|_|_|_| |_|\___| - | |_| - \*/ - class Spline { - friend class SplineSet; - protected: - - string m_name; - bool m_curve_is_closed; - bool m_curve_can_extend; - bool m_curve_extended_constant; - - integer m_npts; - integer m_npts_reserved; - real_type *m_X; // allocated in the derived class! - real_type *m_Y; // allocated in the derived class! - - mutable Utils::BinarySearch m_bs; - - void initLastInterval(); - - Spline( Spline const & ) = delete; - Spline const & operator = ( Spline const & ) = delete; - - public: - - Spline( string const & name = "Spline" ) - : m_name(name) - , m_curve_is_closed(false) - , m_curve_can_extend(true) - , m_curve_extended_constant(false) - , m_npts(0) - , m_npts_reserved(0) - , m_X(nullptr) - , m_Y(nullptr) - { - this->initLastInterval(); - } - virtual - ~Spline() - {} - - integer search( real_type & x ) const; - - - string const & name() const { return m_name; } - - bool is_closed() const { return m_curve_is_closed; } - void make_closed() { m_curve_is_closed = true; } - void make_opened() { m_curve_is_closed = false; } - - bool is_bounded() const { return !m_curve_can_extend; } - void make_unbounded() { m_curve_can_extend = true; } - void make_bounded() { m_curve_can_extend = false; } - - bool is_extended_constant() const { return m_curve_extended_constant; } - void make_extended_constant() { m_curve_extended_constant = true; } - void make_extended_not_constant() { m_curve_extended_constant = false; } - - integer numPoints() const { return m_npts; } - - real_type xNode( integer i ) const { return m_X[size_t(i)]; } - - real_type yNode( integer i ) const { return m_Y[size_t(i)]; } - - real_type xBegin() const { return m_X[0]; } - - real_type yBegin() const { return m_Y[0]; } - - real_type xEnd() const { return m_X[size_t(m_npts-1)]; } - - real_type yEnd() const { return m_Y[size_t(m_npts-1)]; } - - real_type xMin() const { return m_X[0]; } - - real_type xMax() const { return m_X[m_npts-1]; } - - real_type - yMin() const { - integer N = m_npts; - if ( type() == CONSTANT_TYPE ) --N; - return *std::min_element(m_Y,m_Y+N); - } - - real_type - yMax() const { - integer N = m_npts; - if ( type() == CONSTANT_TYPE ) --N; - return *std::max_element(m_Y,m_Y+N); - } - - void setOrigin( real_type x0 ); - - void setRange( real_type xmin, real_type xmax ); - - - - void - build( GenericContainer const & gc ) - { setup(gc); } - - virtual - void - build( - real_type const * x, integer incx, - real_type const * y, integer incy, - integer n - ); - - inline - void - build( - real_type const * x, - real_type const * y, - integer n - ) - { this->build( x, 1, y, 1, n ); } - - inline - void - build( vector const & x, vector const & y ) { - integer N = integer(x.size()); - if ( N > integer(y.size()) ) N = integer(y.size()); - this->build( &x.front(), 1, &y.front(), 1, N ); - } - - virtual - void build() = 0; - - virtual - void setup( GenericContainer const & gc ); - - - - virtual - void reserve( integer npts ) = 0; - - void pushBack( real_type x, real_type y ); - - void dropBack() { if ( m_npts > 0 ) --m_npts; } - - virtual - void clear() = 0; - - - - void - dump( - ostream_type & s, - integer nintervals, - char const * header = "x\ty" - ) const; - - void - dump( - char const * fname, - integer nintervals, - char const * header = "x\ty" - ) const { - std::ofstream file(fname); - this->dump( file, nintervals, header ); - file.close(); - } - - virtual - void writeToStream( ostream_type & s ) const = 0; - - - - virtual - real_type operator () ( real_type x ) const = 0; - - virtual - real_type D( real_type x ) const = 0; - - virtual - real_type DD( real_type x ) const = 0; - - virtual - real_type DDD( real_type x ) const = 0; - - virtual - real_type DDDD( real_type ) const { return real_type(0); } - - virtual - real_type DDDDD( real_type ) const { return real_type(0); } - - real_type eval( real_type x ) const { return (*this)(x); } - real_type eval_D( real_type x ) const { return this->D(x); } - real_type eval_DD( real_type x ) const { return this->DD(x); } - real_type eval_DDD( real_type x ) const { return this->DDD(x); } - real_type eval_DDDD( real_type x ) const { return this->DDDD(x); } - real_type eval_DDDDD( real_type x ) const { return this->DDDDD(x); } - - virtual - real_type id_eval( integer ni, real_type x ) const = 0; - - virtual - real_type id_D( integer ni, real_type x ) const = 0; - - virtual - real_type id_DD( integer ni, real_type x ) const = 0; - - virtual - real_type id_DDD( integer ni, real_type x ) const = 0; - - virtual - real_type id_DDDD( integer, real_type ) const { return real_type(0); } - - virtual - real_type id_DDDDD( integer, real_type ) const { return real_type(0); } - - - - virtual - integer // order - coeffs( - real_type * const cfs, - real_type * const nodes, - bool transpose = false - ) const = 0; - - virtual - integer - order() const = 0; - char const * - type_name() const - { return Splines::spline_type_1D[type()]; } - - virtual - unsigned type() const = 0; - - string info() const; - - void info( ostream_type & stream ) const { stream << this->info() << '\n'; } - - - }; - - real_type - curvature( real_type s, Spline const & X, Spline const & Y ); - - real_type - curvature_D( real_type s, Spline const & X, Spline const & Y ); - - real_type - curvature_DD( real_type s, Spline const & X, Spline const & Y ); - - /*\ - | ____ _ _ ____ _ _ ____ - | / ___| _| |__ (_) ___ / ___| _ __ | (_)_ __ ___ | __ ) __ _ ___ ___ - | | | | | | | '_ \| |/ __| \___ \| '_ \| | | '_ \ / _ \ | _ \ / _` / __|/ _ \ - | | |__| |_| | |_) | | (__ ___) | |_) | | | | | | __/ | |_) | (_| \__ \ __/ - | \____\__,_|_.__/|_|\___| |____/| .__/|_|_|_| |_|\___| |____/ \__,_|___/\___| - | |_| - \*/ - class CubicSplineBase : public Spline { - protected: - Utils::Malloc m_baseValue; - - real_type * m_Yp; - bool m_external_alloc; - - public: - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - using Spline::build; - #endif - - CubicSplineBase( string const & name = "CubicSplineBase" ) - : Spline(name) - , m_baseValue(name+"_memory") - , m_Yp(nullptr) - , m_external_alloc(false) - {} - - ~CubicSplineBase() override {} - - void - copySpline( CubicSplineBase const & S ); - - real_type - ypNode( integer i ) const - { return m_Yp[size_t(i)]; } - - void - setRange( real_type xmin, real_type xmax ); - - void - reserve_external( - integer n, - real_type * & p_x, - real_type * & p_y, - real_type * & p_dy - ); - - // --------------------------- VIRTUALS ----------------------------------- - - real_type operator () ( real_type x ) const override; - real_type D( real_type x ) const override; - real_type DD( real_type x ) const override; - real_type DDD( real_type x ) const override; - real_type id_eval( integer ni, real_type x ) const override; - real_type id_D( integer ni, real_type x ) const override; - real_type id_DD( integer ni, real_type x ) const override; - real_type id_DDD( integer ni, real_type x ) const override; - - void writeToStream( ostream_type & s ) const override; - - // --------------------------- VIRTUALS ----------------------------------- - - void reserve( integer npts ) override; - - // must be defined in derived classes - void - build( - real_type const * x, integer incx, - real_type const * y, integer incy, - real_type const * yp, integer incyp, - integer n - ); - - inline - void - build( - real_type const * x, - real_type const * y, - real_type const * yp, - integer n - ) { - this->build( x, 1, y, 1, yp, 1, n ); - } - - void - build( - vector const & x, - vector const & y, - vector const & yp - ); - - void clear() override; - - integer // order - coeffs( - real_type * const cfs, - real_type * const nodes, - bool transpose = false - ) const override; - - integer order() const override; - - }; - - /*\ - | ____ _ _ ____ __ - | / ___| _ __ | (_)_ __ ___/ ___| _ _ _ __ / _| - | \___ \| '_ \| | | '_ \ / _ \___ \| | | | '__| |_ - | ___) | |_) | | | | | | __/___) | |_| | | | _| - | |____/| .__/|_|_|_| |_|\___|____/ \__,_|_| |_| - | |_| - \*/ - class SplineSurf { - - SplineSurf( SplineSurf const & ) = delete; // block copy constructor - SplineSurf const & operator = ( SplineSurf const & ) = delete; // block copy method - - Utils::Malloc m_mem; - - protected: - - string const m_name; - bool m_x_closed; - bool m_y_closed; - bool m_x_can_extend; - bool m_y_can_extend; - - integer m_nx; - integer m_ny; - - real_type * m_X; - real_type * m_Y; - real_type * m_Z; - - real_type m_Z_min, m_Z_max; - - mutable Utils::BinarySearch m_bs_x; - mutable Utils::BinarySearch m_bs_y; - - integer search_x( real_type & x ) const; - integer search_y( real_type & y ) const; - - void initLastInterval_x(); - void initLastInterval_y(); - - integer - ipos_C( integer i, integer j, integer ldZ ) const - { return i*ldZ + j; } - - integer - ipos_F( integer i, integer j, integer ldZ ) const - { return i + ldZ*j; } - - integer - ipos_C( integer i, integer j ) const - { return this->ipos_C(i,j,m_ny); } - - integer - ipos_F( integer i, integer j ) const - { return this->ipos_F(i,j,m_nx); } - - virtual void makeSpline() = 0; - - public: - - SplineSurf( string const & name = "Spline" ) - : m_mem("SplineSurf") - , m_name(name) - , m_x_closed(false) - , m_y_closed(false) - , m_x_can_extend(true) - , m_y_can_extend(true) - , m_nx(0) - , m_ny(0) - , m_X(nullptr) - , m_Y(nullptr) - , m_Z(nullptr) - , m_Z_min(0) - , m_Z_max(0) - { - this->initLastInterval_x(); - this->initLastInterval_y(); - } - - virtual - ~SplineSurf(); - - bool is_x_closed() const { return m_x_closed; } - void make_x_closed() { m_x_closed = true; } - void make_x_opened() { m_x_closed = false; } - - bool is_y_closed() const { return m_y_closed; } - void make_y_closed() { m_y_closed = true; } - void make_y_opened() { m_y_closed = false; } - - bool is_x_bounded() const { return m_x_can_extend; } - void make_x_unbounded() { m_x_can_extend = true; } - void make_x_bounded() { m_x_can_extend = false; } - - bool is_y_bounded() const { return m_y_can_extend; } - void make_y_unbounded() { m_y_can_extend = true; } - void make_y_bounded() { m_y_can_extend = false; } - - string const & name() const { return m_name; } - - void clear(); - - integer numPointX() const { return m_nx; } - - integer numPointY() const { return m_ny; } - - real_type xNode( integer i ) const { return m_X[size_t(i)]; } - - real_type yNode( integer i ) const { return m_Y[size_t(i)]; } - - real_type - zNode( integer i, integer j ) const - { return m_Z[size_t(this->ipos_C(i,j))]; } - - real_type xMin() const { return m_X[0]; } - - real_type xMax() const { return m_X[m_nx-1]; } - - real_type yMin() const { return m_Y[0]; } - - real_type yMax() const { return m_Y[m_ny-1]; } - - real_type zMin() const { return m_Z_min; } - - real_type zMax() const { return m_Z_max; } - - - void - build( - real_type const * x, integer incx, - real_type const * y, integer incy, - real_type const * z, integer ldZ, - integer nx, integer ny, - bool fortran_storage = false, - bool transposed = false - ); - - void - build( - vector const & x, - vector const & y, - vector const & z, - bool fortran_storage = false, - bool transposed = false - ) { - bool xyswp = (fortran_storage && transposed) || - (!fortran_storage && !transposed); - this->build( - &x.front(), 1, - &y.front(), 1, - &z.front(), integer(xyswp ? y.size() : x.size()), - integer(x.size()), integer(y.size()), - fortran_storage, transposed - ); - } - - void - build( - real_type const * z, - integer ldZ, - integer nx, - integer ny, - bool fortran_storage = false, - bool transposed = false - ); - - void - build( - vector const & z, - integer nx, - integer ny, - bool fortran_storage = false, - bool transposed = false - ) { - if ( fortran_storage ) - this->build( &z.front(), nx, nx, ny, fortran_storage, transposed ); - else - this->build( &z.front(), ny, nx, ny, fortran_storage, transposed ); - } - - void - setup( GenericContainer const & gc ); - - void - build ( GenericContainer const & gc ) - { setup(gc); } - - virtual - real_type - operator () ( real_type x, real_type y ) const = 0; - - virtual - void - D( real_type x, real_type y, real_type d[3] ) const = 0; - - virtual - real_type - Dx( real_type x, real_type y ) const = 0; - - virtual - real_type - Dy( real_type x, real_type y ) const = 0; - - virtual - void - DD( real_type x, real_type y, real_type dd[6] ) const = 0; - - virtual - real_type - Dxx( real_type x, real_type y ) const = 0; - - virtual - real_type - Dxy( real_type x, real_type y ) const = 0; - - virtual - real_type - Dyy( real_type x, real_type y ) const = 0; - - real_type - eval( real_type x, real_type y ) const - { return (*this)(x,y); } - - real_type - eval_D_1( real_type x, real_type y ) const - { return this->Dx(x,y); } - - real_type - eval_D_2( real_type x, real_type y ) const - { return this->Dy(x,y); } - - real_type - eval_D_1_1( real_type x, real_type y ) const - { return this->Dxx(x,y); } - - real_type - eval_D_1_2( real_type x, real_type y ) const - { return this->Dxy(x,y); } - - real_type - eval_D_2_2( real_type x, real_type y ) const - { return this->Dyy(x,y); } - - virtual void writeToStream( ostream_type & s ) const = 0; - - virtual char const * type_name() const = 0; - - virtual string info() const; - - void - info( ostream_type & stream ) const - { stream << this->info() << '\n'; } - - }; - - } - - #include "SplineAkima.hxx" - #include "SplineBessel.hxx" - #include "SplineConstant.hxx" - #include "SplineLinear.hxx" - #include "SplineCubic.hxx" - #include "SplineHermite.hxx" - #include "SplinePchip.hxx" - #include "SplineQuinticBase.hxx" - #include "SplineQuintic.hxx" - #include "SplineBilinear.hxx" - #include "SplineBiCubic.hxx" - #include "SplineAkima2D.hxx" - #include "SplineBiQuintic.hxx" - - #include "SplineVec.hxx" - #include "SplineSet.hxx" - #include "Splines1D.hxx" - #include "Splines2D.hxx" - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - namespace SplinesLoad { - - using Splines::Spline; - using Splines::CubicSplineBase; - using Splines::CubicSpline; - using Splines::AkimaSpline; - using Splines::BesselSpline; - using Splines::PchipSpline; - using Splines::LinearSpline; - using Splines::ConstantSpline; - using Splines::QuinticSpline; - using Splines::Spline1D; - - using Splines::BilinearSpline; - using Splines::BiCubicSpline; - using Splines::BiQuinticSpline; - using Splines::Akima2Dspline; - using Splines::Spline2D; - - using Splines::SplineVec; - using Splines::SplineSet; - - using Splines::SplineType1D; - using Splines::SplineType2D; - } - - #endif - - #ifdef __GNUC__ - #pragma GCC diagnostic pop - #endif - #ifdef __clang__ - #pragma clang diagnostic pop - #endif - - #endif diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.rst.txt deleted file mode 100644 index c0b32682..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.rst.txt +++ /dev/null @@ -1,125 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc: - -Program Listing for File Splines1D.cc -===================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines1D.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - namespace Splines { - - static - Spline * - new_Spline1D( string const & _name, SplineType1D tp ) { - switch ( tp ) { - case CONSTANT_TYPE: return new ConstantSpline(_name); - case LINEAR_TYPE: return new LinearSpline(_name); - case CUBIC_TYPE: return new CubicSpline(_name); - case AKIMA_TYPE: return new AkimaSpline(_name); - case BESSEL_TYPE: return new BesselSpline(_name); - case PCHIP_TYPE: return new PchipSpline(_name); - case QUINTIC_TYPE: return new QuinticSpline(_name); - case HERMITE_TYPE: break; - case SPLINE_SET_TYPE: break; - case SPLINE_VEC_TYPE: break; - } - return nullptr; - } - - void - Spline1D::build( - SplineType1D tp, - real_type const * x, integer incx, - real_type const * y, integer incy, - integer n - ) { - if ( m_pSpline != nullptr ) delete m_pSpline; - m_pSpline = new_Spline1D(m_name,tp); - UTILS_ASSERT0( m_pSpline != nullptr, "Spline1D::build, failed\n" ); - m_pSpline->build( x, incx, y, incy, n ); - } - - /* - // ____ ____ ____ _ - // / ___|/ ___| / ___| _ _ _ __ _ __ ___ _ __| |_ - // | | _| | \___ \| | | | '_ \| '_ \ / _ \| '__| __| - // | |_| | |___ ___) | |_| | |_) | |_) | (_) | | | |_ - // \____|\____| |____/ \__,_| .__/| .__/ \___/|_| \__| - // |_| |_| - */ - - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline1D::setup( GenericContainer const & gc ) { - /* - // gc["xdata"] - // gc["ydata"] - // - */ - std::string spl_type = gc("spline_type").get_string( - "Spline1D::setup, spline_type expected to be a string\n" - ); - SplineType1D tp; - if ( spl_type == "constant" ) { - tp = CONSTANT_TYPE; - } else if ( spl_type == "linear" ) { - tp = LINEAR_TYPE; - } else if ( spl_type == "cubic" ) { - tp = CUBIC_TYPE; - } else if ( spl_type == "akima" ) { - tp = AKIMA_TYPE; - } else if ( spl_type == "bessel" ) { - tp = BESSEL_TYPE; - } else if ( spl_type == "pchip" ) { - tp = PCHIP_TYPE; - } else if ( spl_type == "quintic" ) { - tp = QUINTIC_TYPE; - } else { - UTILS_ERROR( - "Spline1D::setup[{}] unknown type {}, not in " - "[constant,linear,cubic,akima,bessel,pchip,quintic]\n", - m_name, spl_type - ); - } - if ( m_pSpline != nullptr ) delete m_pSpline; - m_pSpline = new_Spline1D( m_name, tp ); - m_pSpline->build( gc ); - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.rst.txt deleted file mode 100644 index d36a03e1..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.rst.txt +++ /dev/null @@ -1,236 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx: - -Program Listing for File Splines1D.hxx -====================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines1D.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ____ _ _ _ ____ - | / ___| _ __ | (_)_ __ ___/ | _ \ - | \___ \| '_ \| | | '_ \ / _ \ | | | | - | ___) | |_) | | | | | | __/ | |_| | - | |____/| .__/|_|_|_| |_|\___|_|____/ - | |_| - \*/ - - namespace Splines { - - class Spline1D { - protected: - - std::string m_name; - - Spline * m_pSpline; - - Spline1D( Spline1D const & ) = delete; - Spline1D const & operator = ( Spline1D const & ) = delete; - - public: - - Spline1D( std::string const & n ) - : m_name(n) - , m_pSpline(nullptr) - {} - - ~Spline1D() - {} - - string const & name() const { return m_pSpline->name(); } - - bool is_closed() const { return m_pSpline->is_closed(); } - void make_closed() { m_pSpline->make_closed(); } - void make_opened() { m_pSpline->make_opened(); } - - bool is_bounded() const { return m_pSpline->is_bounded(); } - void make_unbounded() { m_pSpline->make_unbounded(); } - void make_bounded() { m_pSpline->make_bounded(); } - - integer numPoints() const { return m_pSpline->numPoints(); } - - real_type xNode( integer i ) const { return m_pSpline->xNode(i); } - - real_type yNode( integer i ) const { return m_pSpline->yNode(i); } - - real_type xBegin() const { return m_pSpline->xBegin(); } - - real_type yBegin() const { return m_pSpline->yBegin(); } - - real_type xEnd() const { return m_pSpline->xEnd(); } - - real_type yEnd() const { return m_pSpline->yEnd(); } - - void reserve( integer npts ) { return m_pSpline->reserve( npts ); } - - void pushBack( real_type x, real_type y ) { return m_pSpline->pushBack( x, y ); } - - void dropBack() { m_pSpline->dropBack(); } - - // must be defined in derived classes - void build() { m_pSpline->build(); } - - void setup( GenericContainer const & gc ); - void build( GenericContainer const & gc ) { setup(gc); } - - // must be defined in derived classes - void - build( - SplineType1D tp, - real_type const * x, integer incx, - real_type const * y, integer incy, - integer n - ); - - void - build( - SplineType1D tp, - real_type const * x, - real_type const * y, - integer n - ) { - this->build( tp, x, 1, y, 1, n ); - } - - void - build( - SplineType1D tp, - vector const & x, - vector const & y - ) { - integer n = integer(x.size()); - this->build( tp, &x.front(), &y.front(), n ); - } - - void - clear() { m_pSpline->clear(); } - - real_type xMin() const { return m_pSpline->xMin(); } - - real_type xMax() const { return m_pSpline->xMax(); } - - real_type yMin() const { return m_pSpline->yMin(); } - - real_type yMax() const { return m_pSpline->yMax(); } - - void - setOrigin( real_type x0 ) - { return m_pSpline->setOrigin( x0 ); } - - void - setRange( real_type xmin, real_type xmax ) - { return m_pSpline->setRange( xmin, xmax ); } - - void - dump( - ostream_type & s, - integer nintervals, - char const * header = "x\ty" - ) const { - m_pSpline->dump( s, nintervals, header ); - } - - void - dump( - char const * fname, - integer nintervals, - char const * header = "x\ty" - ) const { - m_pSpline->dump( fname, nintervals, header ); - } - - real_type operator () ( real_type x ) const { return (*m_pSpline)(x); } - - real_type D( real_type x ) const { return m_pSpline->D(x); } - - real_type DD( real_type x ) const { return m_pSpline->DD(x); } - - real_type DDD( real_type x ) const { return m_pSpline->DDD(x); } - - real_type DDDD( real_type x ) const { return m_pSpline->DDDD(x); } - - real_type DDDDD( real_type x ) const { return m_pSpline->DDDDD(x); } - - real_type eval( real_type x ) const { return (*m_pSpline)(x); } - real_type eval_D( real_type x ) const { return m_pSpline->D(x); } - real_type eval_DD( real_type x ) const { return m_pSpline->DD(x); } - real_type eval_DDD( real_type x ) const { return m_pSpline->DDD(x); } - real_type eval_DDDD( real_type x ) const { return m_pSpline->DDDD(x); } - real_type eval_DDDDD( real_type x ) const { return m_pSpline->DDDDD(x); } - - real_type - id_eval( integer ni, real_type x ) const { return m_pSpline->id_eval(ni,x); } - - real_type - id_D( integer ni, real_type x ) const { return m_pSpline->id_D(ni,x); } - - real_type - id_DD( integer ni, real_type x ) const { return m_pSpline->id_DD(ni,x); } - - real_type - id_DDD( integer ni, real_type x ) const { return m_pSpline->id_DDD(ni,x); } - - real_type - id_DDDD( integer ni, real_type x ) const { return m_pSpline->id_DDDD(ni,x); } - - real_type - id_DDDDD( integer ni, real_type x ) const { return m_pSpline->id_DDDDD(ni,x); } - - integer // order - coeffs( - real_type * const cfs, - real_type * const nodes, - bool transpose = false - ) const { - return m_pSpline->coeffs( cfs, nodes, transpose ); - } - - integer order() const { return m_pSpline->order(); } - - void - writeToStream( ostream_type & s ) const - { return m_pSpline->writeToStream( s ); } - - char const * - type_name() const - { return m_pSpline->type_name(); } - - unsigned - type() const - { return m_pSpline->type(); } - - string - info() const - { return m_pSpline->info(); } - - void - info( ostream_type & stream ) const - { m_pSpline->info( stream ); } - }; - - } - - // EOF: Spline1D.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.rst.txt deleted file mode 100644 index a68e3b4c..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.rst.txt +++ /dev/null @@ -1,213 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc: - -Program Listing for File Splines2D.cc -===================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines2D.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline2D::build( - SplineType2D tp, - real_type const * x, integer incx, - real_type const * y, integer incy, - real_type const * z, integer ldZ, - integer nx, - integer ny, - bool fortran_storage, - bool transposed - ) { - switch ( tp ) { - case BILINEAR_TYPE: - static_cast(m_pSpline2D)->build( - x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case BICUBIC_TYPE: - static_cast(m_pSpline2D)->build( - x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case BIQUINTIC_TYPE: - static_cast(m_pSpline2D)->build( - x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case AKIMA2D_TYPE: - static_cast(m_pSpline2D)->build( - x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline2D::build( - SplineType2D tp, - vector const & x, - vector const & y, - vector const & z, - bool fortran_storage, - bool transposed - ) { - switch ( tp ) { - case BILINEAR_TYPE: - static_cast(m_pSpline2D)->build( - x, y, z, fortran_storage, transposed - ); - break; - case BICUBIC_TYPE: - static_cast(m_pSpline2D)->build( - x, y, z, fortran_storage, transposed - ); - break; - case BIQUINTIC_TYPE: - static_cast(m_pSpline2D)->build( - x, y, z, fortran_storage, transposed - ); - break; - case AKIMA2D_TYPE: - static_cast(m_pSpline2D)->build( - x, y, z, fortran_storage, transposed - ); - break; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline2D::build( - SplineType2D tp, - real_type const * z, - integer ldZ, - integer nx, - integer ny, - bool fortran_storage, - bool transposed - ) { - switch ( tp ) { - case BILINEAR_TYPE: - static_cast(m_pSpline2D)->build( - z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case BICUBIC_TYPE: - static_cast(m_pSpline2D)->build( - z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case BIQUINTIC_TYPE: - static_cast(m_pSpline2D)->build( - z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case AKIMA2D_TYPE: - static_cast(m_pSpline2D)->build( - z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline2D::build( - SplineType2D tp, - vector const & z, - integer nx, - integer ny, - bool fortran_storage, - bool transposed - ) { - switch ( tp ) { - case BILINEAR_TYPE: - static_cast(m_pSpline2D)->build( - z, nx, ny, fortran_storage, transposed - ); - break; - case BICUBIC_TYPE: - static_cast(m_pSpline2D)->build( - z, nx, ny, fortran_storage, transposed - ); - break; - case BIQUINTIC_TYPE: - static_cast(m_pSpline2D)->build( - z, nx, ny, fortran_storage, transposed - ); - break; - case AKIMA2D_TYPE: - static_cast(m_pSpline2D)->build( - z, nx, ny, fortran_storage, transposed - ); - break; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline2D::build( GenericContainer const & gc ) { - - using GenericContainerNamespace::string_type; - - string msg = fmt::format("Spline2D[{}]::setup( gc ):", m_name ); - UTILS_ASSERT( - gc.exists("spline_type"), "{}, missing `spline_type` field!\n", msg - ); - - string_type type = gc("spline_type").get_string(); - - if ( type == "bilinear" ) { - static_cast(m_pSpline2D)->build( gc ); - } else if ( type == "bicubic" ) { - static_cast(m_pSpline2D)->build( gc ); - } else if ( type == "biquintic" ) { - static_cast(m_pSpline2D)->build( gc ); - } else if ( type == "Akima" || type == "akima" ) { - static_cast(m_pSpline2D)->build( gc ); - } else { - UTILS_ERROR( "{}, type `{}` unknown\n", msg, type ); - } - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.rst.txt deleted file mode 100644 index f73b69d2..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.rst.txt +++ /dev/null @@ -1,233 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx: - -Program Listing for File Splines2D.hxx -====================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines2D.hxx``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - /*\ - | ____ _ _ ____ ____ - | / ___| _ __ | (_)_ __ ___|___ \| _ \ - | \___ \| '_ \| | | '_ \ / _ \ __) | | | | - | ___) | |_) | | | | | | __// __/| |_| | - | |____/| .__/|_|_|_| |_|\___|_____|____/ - | |_| - \*/ - - namespace Splines { - - class Spline2D { - protected: - std::string m_name; - SplineSurf * m_pSpline2D; - public: - - Spline2D( string const & name = "Spline2D" ) - : m_name(name) - , m_pSpline2D( nullptr ) - {} - - ~Spline2D() - {} - - bool is_x_closed() const { return m_pSpline2D->is_x_closed(); } - void make_x_closed() { m_pSpline2D->make_x_closed(); } - void make_x_opened() { m_pSpline2D->make_x_opened(); } - - bool is_y_closed() const { return m_pSpline2D->is_y_closed(); } - void make_y_closed() { m_pSpline2D->make_y_closed(); } - void make_y_opened() { m_pSpline2D->make_y_opened(); } - - bool is_x_bounded() const { return m_pSpline2D->is_x_bounded(); } - void make_x_unbounded() { m_pSpline2D->make_x_unbounded(); } - void make_x_bounded() { m_pSpline2D->make_x_bounded(); } - - bool is_y_bounded() const { return m_pSpline2D->is_y_bounded(); } - void make_y_unbounded() { m_pSpline2D->make_y_unbounded(); } - void make_y_bounded() { m_pSpline2D->make_y_bounded(); } - - string const & name() const { return m_pSpline2D->name(); } - - void clear() { m_pSpline2D->clear(); } - - integer - numPointX() const { return m_pSpline2D->numPointX(); } - - integer - numPointY() const { return m_pSpline2D->numPointY(); } - - real_type - xNode( integer i ) const { return m_pSpline2D->xNode(i); } - - real_type - yNode( integer i ) const { return m_pSpline2D->yNode(i); } - - real_type - zNode( integer i, integer j ) const { return m_pSpline2D->zNode(i,j); } - - real_type - xMin() const { return m_pSpline2D->xMin(); } - - real_type - xMax() const { return m_pSpline2D->xMax(); } - - real_type - yMin() const { return m_pSpline2D->yMin(); } - - real_type - yMax() const { return m_pSpline2D->yMax(); } - - real_type - zMin() const { return m_pSpline2D->zMin(); } - - real_type - zMax() const { return m_pSpline2D->zMax(); } - - void - build( - SplineType2D tp, - real_type const * x, integer incx, - real_type const * y, integer incy, - real_type const * z, integer ldZ, - integer nx, - integer ny, - bool fortran_storage = false, - bool transposed = false - ); - - void - build( - SplineType2D tp, - vector const & x, - vector const & y, - vector const & z, - bool fortran_storage = false, - bool transposed = false - ); - - void - build( - SplineType2D tp, - real_type const * z, - integer ldZ, - integer nx, - integer ny, - bool fortran_storage = false, - bool transposed = false - ); - - void - build( - SplineType2D tp, - vector const & z, - integer nx, - integer ny, - bool fortran_storage = false, - bool transposed = false - ); - - void - setup( GenericContainer const & gc ) - { build(gc); } - - void - build( GenericContainer const & gc ); - - real_type - operator () ( real_type x, real_type y ) const - { return (*m_pSpline2D)( x, y ); } - - void - D( real_type x, real_type y, real_type d[3] ) const - { return m_pSpline2D->D( x, y, d ); } - - real_type - Dx( real_type x, real_type y ) const - { return m_pSpline2D->Dx( x, y ); } - - real_type - Dy( real_type x, real_type y ) const - { return m_pSpline2D->Dy( x, y ); } - - void - DD( real_type x, real_type y, real_type dd[6] ) const - { return m_pSpline2D->DD( x, y, dd ); } - - real_type - Dxx( real_type x, real_type y ) const - { return m_pSpline2D->Dxx( x, y ); } - - real_type - Dxy( real_type x, real_type y ) const - { return m_pSpline2D->Dxy( x, y ); } - - real_type - Dyy( real_type x, real_type y ) const - { return m_pSpline2D->Dyy( x, y ); } - - real_type - eval( real_type x, real_type y ) const - { return (*this)(x,y); } - - real_type - eval_D_1( real_type x, real_type y ) const - { return this->Dx(x,y); } - - real_type - eval_D_2( real_type x, real_type y ) const - { return this->Dy(x,y); } - - real_type - eval_D_1_1( real_type x, real_type y ) const - { return this->Dxx(x,y); } - - real_type - eval_D_1_2( real_type x, real_type y ) const - { return this->Dxy(x,y); } - - real_type - eval_D_2_2( real_type x, real_type y ) const - { return this->Dyy(x,y); } - - void - writeToStream( ostream_type & s ) const - { return m_pSpline2D->writeToStream( s ); } - - char const * type_name() const { return m_pSpline2D->type_name(); } - - string - info() const - { return m_pSpline2D->info(); } - - void - info( ostream_type & stream ) const - { m_pSpline2D->info( stream ); } - }; - - } - - // EOF Splines2D.hxx diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.rst.txt deleted file mode 100644 index 35455f72..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.rst.txt +++ /dev/null @@ -1,596 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc: - -Program Listing for File SplinesBivariate.cc -============================================ - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesBivariate.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "Splines.hh" - #include - #include - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - namespace Splines { - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SplineSurf::~SplineSurf() - {} - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - string - SplineSurf::info() const { - return fmt::format( - "Bivariate spline [{}] of type = {}", name(), type_name() - ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSurf::clear(void) { - m_mem.free(); - m_nx = m_ny = 0; - m_X = m_Y = m_Z = nullptr; - m_Z_min = m_Z_max = 0; - this->initLastInterval_x(); - this->initLastInterval_y(); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSurf::build( - real_type const * x, integer incx, - real_type const * y, integer incy, - real_type const * z, integer ldZ, - integer nx, - integer ny, - bool fortran_storage, - bool transposed - ) { - m_nx = nx; - m_ny = ny; - m_mem.reallocate( size_t((nx+1)*(ny+1)) ); - m_X = m_mem( size_t(nx) ); - m_Y = m_mem( size_t(ny) ); - m_Z = m_mem( size_t(nx*ny) ); - for ( size_t i = 0; i < size_t(nx); ++i ) m_X[i] = x[i*size_t(incx)]; - for ( size_t i = 0; i < size_t(ny); ++i ) m_Y[i] = y[i*size_t(incy)]; - if ( (fortran_storage && transposed) || (!fortran_storage && !transposed) ) { - UTILS_ASSERT( - ldZ >= ny, - "SplineSurf::build, ldZ = {} must be >= of nx = {}\n", ldZ, ny - ); - for ( integer i = 0; i < nx; ++i ) - for ( integer j = 0; j < ny; ++j ) - m_Z[size_t(ipos_C(i,j,ny))] = z[size_t(ipos_C(i,j,ldZ))]; - } else { - UTILS_ASSERT( - ldZ >= nx, - "SplineSurf::build, ldZ = {} must be >= of ny = {}\n", ldZ, nx - ); - for ( integer i = 0; i < nx; ++i ) - for ( integer j = 0; j < ny; ++j ) - m_Z[size_t(ipos_C(i,j,ny))] = z[size_t(ipos_F(i,j,ldZ))]; - } - m_Z_max = *std::max_element(m_Z,m_Z+nx*ny); - m_Z_min = *std::min_element(m_Z,m_Z+nx*ny); - makeSpline(); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSurf::build( - real_type const * z, - integer ldZ, - integer nx, - integer ny, - bool fortran_storage, - bool transposed - ) { - Utils::Malloc mem("SplineSurf::build"); - mem.allocate( size_t(nx+ny) ); - real_type * XX = mem( size_t(nx) ); - real_type * YY = mem( size_t(ny) ); // temporary vector - for ( size_t i = 0; i < size_t(nx); ++i ) XX[i] = real_type(i); - for ( size_t i = 0; i < size_t(ny); ++i ) YY[i] = real_type(i); - build( XX, 1, YY, 1, z, ldZ, nx, ny, fortran_storage, transposed ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BiCubicSplineBase::load( - integer i, integer j, real_type bili3[4][4] - ) const { - // - // 1 3 - // - // 0 2 - // - size_t i0 = size_t(ipos_C(i,j,m_ny)); - size_t i1 = size_t(ipos_C(i,j+1,m_ny)); - size_t i2 = size_t(ipos_C(i+1,j,m_ny)); - size_t i3 = size_t(ipos_C(i+1,j+1,m_ny)); - - bili3[0][0] = m_Z[i0]; bili3[0][1] = m_Z[i1]; - bili3[0][2] = m_DY[i0]; bili3[0][3] = m_DY[i1]; - - bili3[1][0] = m_Z[i2]; bili3[1][1] = m_Z[i3]; - bili3[1][2] = m_DY[i2]; bili3[1][3] = m_DY[i3]; - - bili3[2][0] = m_DX[i0]; bili3[2][1] = m_DX[i1]; - bili3[2][2] = m_DXY[i0]; bili3[2][3] = m_DXY[i1]; - - bili3[3][0] = m_DX[i2]; bili3[3][1] = m_DX[i3]; - bili3[3][2] = m_DXY[i2]; bili3[3][3] = m_DXY[i3]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiCubicSplineBase::operator () ( real_type x, real_type y ) const { - real_type bili3[4][4], u[4], v[4]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite3( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u ); - Hermite3( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v ); - load( i, j, bili3 ); - return bilinear3( u, bili3, v ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiCubicSplineBase::Dx( real_type x, real_type y ) const { - real_type bili3[4][4], u_D[4], v[4]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite3_D( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_D ); - Hermite3 ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v ); - load( i, j, bili3 ); - return bilinear3( u_D, bili3, v ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiCubicSplineBase::Dy( real_type x, real_type y ) const { - real_type bili3[4][4], u[4], v_D[4]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite3 ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u ); - Hermite3_D( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_D ); - load( i, j, bili3 ); - return bilinear3( u, bili3, v_D ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiCubicSplineBase::Dxy( real_type x, real_type y ) const { - real_type bili3[4][4], u_D[4], v_D[4]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite3_D( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_D ); - Hermite3_D( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_D ); - load( i, j, bili3 ); - return bilinear3( u_D, bili3, v_D ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiCubicSplineBase::Dxx( real_type x, real_type y ) const { - real_type bili3[4][4], u_DD[4], v[4]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite3_DD( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_DD ); - Hermite3 ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v ); - load( i, j, bili3 ); - return bilinear3( u_DD, bili3, v ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiCubicSplineBase::Dyy( real_type x, real_type y ) const { - real_type bili3[4][4], u[4], v_DD[4]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite3 ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u ); - Hermite3_DD( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_DD ); - load( i, j, bili3 ); - return bilinear3( u, bili3, v_DD ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BiCubicSplineBase::D( real_type x, real_type y, real_type d[3] ) const { - real_type bili3[4][4], u[4], u_D[4], v[3], v_D[4]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite3 ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u ); - Hermite3_D ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_D ); - Hermite3 ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v ); - Hermite3_D ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_D ); - load( i, j, bili3 ); - d[0] = bilinear3( u, bili3, v ); - d[1] = bilinear3( u_D, bili3, v ); - d[2] = bilinear3( u, bili3, v_D ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BiCubicSplineBase::DD( real_type x, real_type y, real_type d[6] ) const { - real_type bili3[4][4], u[4], u_D[4], u_DD[4], v[3], v_D[4], v_DD[4]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite3 ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u ); - Hermite3_D ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_D ); - Hermite3_DD( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_DD ); - Hermite3 ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v ); - Hermite3_D ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_D ); - Hermite3_DD( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_DD ); - load( i, j, bili3 ); - d[0] = bilinear3( u, bili3, v ); - d[1] = bilinear3( u_D, bili3, v ); - d[2] = bilinear3( u, bili3, v_D ); - d[3] = bilinear3( u_DD, bili3, v ); - d[4] = bilinear3( u_D, bili3, v_D ); - d[5] = bilinear3( u, bili3, v_DD ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BiQuinticSplineBase::load( - integer i, integer j, real_type bili5[6][6] - ) const { - - size_t i00 = size_t(ipos_C(i,j,m_ny)); - size_t i01 = size_t(ipos_C(i,j+1,m_ny)); - size_t i10 = size_t(ipos_C(i+1,j,m_ny)); - size_t i11 = size_t(ipos_C(i+1,j+1,m_ny)); - - // - // 1 3 - // - // 0 2 - // - // H0, H1, dH0, dH1, ddH0, ddH1 - - // + + + + + + - // + + + + + + - // + + + + . . - // + + + + . . - // + + . . . . - // + + . . . . - - // P - bili5[0][0] = m_Z[i00]; bili5[0][1] = m_Z[i01]; - bili5[1][0] = m_Z[i10]; bili5[1][1] = m_Z[i11]; - - // DX - bili5[2][0] = m_DX[i00]; bili5[2][1] = m_DX[i01]; - bili5[3][0] = m_DX[i10]; bili5[3][1] = m_DX[i11]; - - // DXX - bili5[4][0] = m_DXX[i00]; bili5[4][1] = m_DXX[i01]; - bili5[5][0] = m_DXX[i10]; bili5[5][1] = m_DXX[i11]; - - // DY - bili5[0][2] = m_DY[i00]; bili5[0][3] = m_DY[i01]; - bili5[1][2] = m_DY[i10]; bili5[1][3] = m_DY[i11]; - - // DYY - bili5[0][4] = m_DYY[i00]; bili5[0][5] = m_DYY[i01]; - bili5[1][4] = m_DYY[i10]; bili5[1][5] = m_DYY[i11]; - - // DXY - bili5[2][2] = m_DXY[i00]; bili5[2][3] = m_DXY[i01]; - bili5[3][2] = m_DXY[i10]; bili5[3][3] = m_DXY[i11]; - - // DXXY - bili5[4][2] = m_DXXY[i00]; bili5[4][3] = m_DXXY[i01]; - bili5[5][2] = m_DXXY[i10]; bili5[5][3] = m_DXXY[i11]; - - // DXYY - bili5[2][4] = m_DXYY[i00]; bili5[2][5] = m_DXYY[i01]; - bili5[3][4] = m_DXYY[i10]; bili5[3][5] = m_DXYY[i11]; - - // DXXYY - bili5[4][4] = m_DXXYY[i00]; bili5[4][5] = m_DXXYY[i01]; - bili5[5][4] = m_DXXYY[i10]; bili5[5][5] = m_DXXYY[i11]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiQuinticSplineBase::operator () ( real_type x, real_type y ) const { - real_type bili5[6][6], u[6], v[6]; - size_t i = size_t(search_x( x )); - size_t j = size_t(search_y( y )); - Hermite5( x - m_X[i], m_X[i+1] - m_X[i], u ); - Hermite5( y - m_Y[j], m_Y[j+1] - m_Y[j], v ); - load( integer(i), integer(j), bili5 ); - return bilinear5( u, bili5, v ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiQuinticSplineBase::Dx( real_type x, real_type y ) const { - real_type bili5[6][6], u_D[6], v[6]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite5_D( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_D ); - Hermite5 ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v ); - load( integer(i), integer(j), bili5 ); - return bilinear5( u_D, bili5, v ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiQuinticSplineBase::Dy( real_type x, real_type y ) const { - real_type bili5[6][6], u[6], v_D[6]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite5 ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u ); - Hermite5_D( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_D ); - load( integer(i), integer(j), bili5 ); - return bilinear5( u, bili5, v_D ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiQuinticSplineBase::Dxy( real_type x, real_type y ) const { - real_type bili5[6][6], u_D[6], v_D[6]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite5_D( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_D ); - Hermite5_D( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_D ); - load( integer(i), integer(j), bili5 ); - return bilinear5( u_D, bili5, v_D ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiQuinticSplineBase::Dxx( real_type x, real_type y ) const { - real_type bili5[6][6], u_DD[6], v[6]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite5_DD( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_DD ); - Hermite5 ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v ); - load( integer(i), integer(j), bili5 ); - return bilinear5( u_DD, bili5, v ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - BiQuinticSplineBase::Dyy( real_type x, real_type y ) const { - real_type bili5[6][6], u[6], v_DD[6]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite5 ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u ); - Hermite5_DD( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_DD ); - load( integer(i), integer(j), bili5 ); - return bilinear5( u, bili5, v_DD ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BiQuinticSplineBase::D( real_type x, real_type y, real_type d[3] ) const { - real_type bili5[6][6], u[6], u_D[6], v[6], v_D[6]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite5 ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u ); - Hermite5_D ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_D ); - Hermite5 ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v ); - Hermite5_D ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_D ); - load( integer(i), integer(j), bili5 ); - d[0] = bilinear5( u, bili5, v ); - d[1] = bilinear5( u_D, bili5, v ); - d[2] = bilinear5( u, bili5, v_D ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - BiQuinticSplineBase::DD( real_type x, real_type y, real_type d[6] ) const { - real_type bili5[6][6], u[6], u_D[6], u_DD[6], v[6], v_D[6], v_DD[6]; - integer i = search_x( x ); - integer j = search_y( y ); - Hermite5 ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u ); - Hermite5_D ( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_D ); - Hermite5_DD( x - m_X[size_t(i)], m_X[size_t(i+1)] - m_X[size_t(i)], u_DD ); - Hermite5 ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v ); - Hermite5_D ( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_D ); - Hermite5_DD( y - m_Y[size_t(j)], m_Y[size_t(j+1)] - m_Y[size_t(j)], v_DD ); - load( integer(i), integer(j), bili5 ); - d[0] = bilinear5( u, bili5, v ); - d[1] = bilinear5( u_D, bili5, v ); - d[2] = bilinear5( u, bili5, v_D ); - d[3] = bilinear5( u_DD, bili5, v ); - d[4] = bilinear5( u_D, bili5, v_D ); - d[5] = bilinear5( u, bili5, v_DD ); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - using GenericContainerNamespace::GC_VECTOR; - using GenericContainerNamespace::GC_VEC_INTEGER; - using GenericContainerNamespace::GC_VEC_LONG; - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::GC_MAT_REAL; - using GenericContainerNamespace::mat_real_type; - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSurf::setup( GenericContainer const & gc ) { - /* - // gc["xdata"] - // gc["ydata"] - // gc["zdata"] - // - */ - string msg = fmt::format("SplineSurf[{}]::setup( gc ):", m_name ); - UTILS_ASSERT( gc.exists("xdata"), "{}, missing `xdata` field!\n", msg ); - UTILS_ASSERT( gc.exists("ydata"), "{}, missing `ydata` field!\n", msg ); - UTILS_ASSERT( gc.exists("zdata"), "{}, missing `zdata` field!\n", msg ); - - GenericContainer const & gc_x = gc("xdata"); - GenericContainer const & gc_y = gc("ydata"); - GenericContainer const & gc_z = gc("zdata"); - - vec_real_type x, y; - gc_x.copyto_vec_real( x, (msg+" field `xdata'").c_str() ); - gc_y.copyto_vec_real( y, (msg+" field `ydata'").c_str() ); - - bool fortran_storage = false; - gc.get_if_exists("fortran_storage",fortran_storage); - - bool transposed = false; - gc.get_if_exists("transposed",transposed); - - /* - // +------+ - // ny | - // + nx + - */ - - integer nx = integer( x.size() ); // ncols - integer ny = integer( y.size() ); // nrows - integer ldz = integer( fortran_storage ? ny : nx ); - - if ( GC_MAT_REAL == gc_z.get_type() ) { - mat_real_type const & z = gc_z.get_mat_real(); - if ( transposed ) { - UTILS_ASSERT( - unsigned(ny) == z.numCols() && unsigned(nx) == z.numCols(), - "{}, field `z` expected to be of size {} x {}, found: {} x {}\n", - msg, ny, nx, z.numRows(), z.numCols() - ); - } else { - UTILS_ASSERT( - unsigned(nx) == z.numCols() && unsigned(ny) == z.numCols(), - "{}, field `z` expected to be of size {} x {}, found: {} x {}\n", - msg, nx, ny, z.numRows(), z.numCols() - ); - } - build( - &x.front(), 1, &y.front(), 1, z.data(), ldz, - nx, ny, fortran_storage, transposed - ); - } else if ( GC_VEC_INTEGER == gc_z.get_type() || - GC_VEC_LONG == gc_z.get_type() || - GC_VEC_REAL == gc_z.get_type() ) { - vec_real_type z; - gc_z.copyto_vec_real( z, "SplineSurf::setup, field `z'" ); - integer nz = integer(z.size()); - UTILS_ASSERT( - nz == nx*ny, - "{}, field `z` expected to be of size {} = {}x{}, found: `{}`\n", - msg, nx*ny, nx, ny, nz - ); - build( - &x.front(), 1, &y.front(), 1, &z.front(), ldz, - nx, ny, fortran_storage, transposed - ); - } else if ( GC_VECTOR == gc_z.get_type() ) { - vector_type const & data = gc_z.get_vector(); - vec_real_type tmp, z; - z.resize( nx * ny ); - if ( fortran_storage ) { - UTILS_ASSERT( - size_t(nx) == data.size(), - "{}, field `zdata` (vector of vector) expected of size {} found of size {}\n", - msg, nx, data.size() - ); - for ( integer i = 0; i < nx; ++i ) { - GenericContainer const & col = data[size_t(i)]; - string msg1 = fmt::format( "{} reading column {}\n", msg, i ); - col.copyto_vec_real( tmp, msg1.c_str() ); - UTILS_ASSERT( - size_t(ny) == tmp.size(), - "{}, column {}-th of size {}, expected {}\n", - msg, i, tmp.size(), ny - ); - for ( integer j = 0; j < ny; ++j ) - z[size_t(ipos_C(i,j,ny))] = tmp[size_t(j)]; - } - } else { - UTILS_ASSERT( - size_t(ny) == data.size(), - "{}, field `zdata` (vector of vector) expected of size {} found of size {}\n", - msg, ny, data.size() - ); - for ( integer j = 0; j < ny; ++j ) { - GenericContainer const & row = data[size_t(j)]; - string msg1 = fmt::format( "{} , reading row {}\n", msg, j ); - row.copyto_vec_real( tmp, msg1.c_str() ); - UTILS_ASSERT( - size_t(nx) == tmp.size(), - "{}, row {}-th of size {}, expected {}\n", - msg, j, tmp.size(), nx - ); - for ( integer i = 0; i < nx; ++i ) - z[size_t(ipos_C(i,j,ny))] = tmp[size_t(i)]; - } - } - build( - &x.front(), 1, &y.front(), 1, &z.front(), nx, - nx, ny, false, false - ); - } else { - UTILS_ERROR( - "{}, field `z` expected to be of type" - " `mat_real_type` or `vec_real_type` or `vector_type` found: `{}`\n", - msg, gc_z.get_type_name() - ); - } - - } - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.rst.txt deleted file mode 100644 index b05a7c74..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.rst.txt +++ /dev/null @@ -1,54 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh: - -Program Listing for File SplinesConfig.hh -========================================= - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesConfig.hh``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #pragma once - - #ifndef SPLINES_CONFIG_HH - #define SPLINES_CONFIG_HH - - #ifdef __GNUC__ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpadded" - #endif - #ifdef __clang__ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wpadded" - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - // Uncomment this if you want to enable debugging - // #define DEBUG - - #include "Utils.hh" - #include "GenericContainer.hh" - - #endif diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.rst.txt deleted file mode 100644 index 8b827d5d..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.rst.txt +++ /dev/null @@ -1,541 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc: - -Program Listing for File SplinesUtils.cc -======================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesUtils.cc``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - - #include "SplinesUtils.hh" - - #ifdef __clang__ - #pragma clang diagnostic ignored "-Wc++98-compat" - #pragma clang diagnostic ignored "-Wglobal-constructors" - #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" - #pragma clang diagnostic ignored "-Wpoison-system-directories" - #endif - - namespace Splines { - - using std::abs; - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - /* - // __ _ _ _ _ _ __ __ - // / _(_)_ __ (_) |_ ___ __| (_)/ _|/ _| ___ _ __ ___ _ __ ___ ___ - // | |_| | '_ \| | __/ _ \ / _` | | |_| |_ / _ \ '__/ _ \ '_ \ / __/ _ \ - // | _| | | | | | || __/ | (_| | | _| _| __/ | | __/ | | | (_| __/ - // |_| |_|_| |_|_|\__\___| \__,_|_|_| |_| \___|_| \___|_| |_|\___\___| - */ - - real_type - first_deriv4p_R( - real_type DLLL, real_type hLLL, - real_type DLL, real_type hLL, - real_type DL, real_type hL - ) { - real_type t2 = hL*hL; - real_type t19 = hLL*hLL; - real_type t22 = DL-DLL/2; - real_type t26 = hLLL*hLLL; - real_type t32 = hLL+hLLL; - real_type t33 = t32*t32; - real_type top = ((DLLL-DLL)*t2+4*t19*DL-3*t19*DLL+t19*DLLL+6*hLL*t22*hLLL+2*t22*t26)*hL + - ((3*DL-4*DLL+2*DLLL)*hLL+3*DL*hLLL-2*DLL*hLLL)*t2+t33*hLL*DL; - real_type bot = t32*(hL+hLL+hLLL)*(hL+hLL); - return top/bot; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - first_deriv4p_L( - real_type DR, real_type hR, - real_type DRR, real_type hRR, - real_type DRRR, real_type hRRR - ) { - real_type t2 = hR*hR; - real_type t19 = hRR*hRR; - real_type t22 = DR-DRR/2; - real_type t26 = hRRR*hRRR; - real_type t32 = hRR+hRRR; - real_type t33 = t32*t32; - real_type top = ( (DRRR-DRR)*t2 + t19*(4*DR-3*DRR+DRRR) + 6*hRR*t22*hRRR+2*t22*t26)*hR + - ((3*DR-4*DRR+2*DRRR)*hRR+3*DR*hRRR-2*DRR*hRRR)*t2+t33*hRR*DR; - real_type bot = t32*(hR+hRR+hRRR)*(hR+hRR); - return top/bot; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - first_deriv5p_C( - real_type DLL, real_type hLL, - real_type DL, real_type hL, - real_type DR, real_type hR, - real_type DRR, real_type hRR - ) { - real_type hhLL = hL+hLL; - real_type hhRR = hR+hRR; - real_type DDRR = (DR*hR+DRR*hRR)/hhRR; - real_type DDLL = (DL*hL+DLL*hLL)/hhLL; - real_type t3 = DL*hR+DR*hL; - real_type t4 = hhRR*hhRR; - real_type t6 = hR*hR; - real_type t8 = hL*hL; - real_type t10 = -t6*DL+t8*DR; - real_type t12 = hR*hL; - real_type t13 = hR+hL; - real_type t14 = t13*DDRR; - real_type t17 = hhLL*hhLL; - real_type t20 = t4*hhRR; - real_type t22 = t6*hR; - real_type t24 = t8*hL; - real_type t26 = -t22*DL-t24*DR; - real_type t41 = -hhRR+hR; - real_type t43 = hhRR+hL; - real_type top = ( (hhRR*t10-t12*t14+t3*t4)*hhLL + hhRR*t26 + (hR*t24-hL*t22)*DDRR + t20*t3)*t17 + - hhLL*(t14*t6*t8-t10*t20+t26*t4) + t13*t43*t41*hhRR*DDLL*t12; - real_type bot = t41*(hhRR+hhLL)*t43*(hR+hhLL)*t13*(hL-hhLL); - return top/bot; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - first_deriv5p_L( - real_type DLL, real_type hLL, - real_type DL, real_type hL, - real_type DR, real_type hR, - real_type DRR, real_type hRR - ) { - real_type hhLL = hL+hLL; - real_type hhRR = hR+hRR; - real_type DDRR = (DR*hR+DRR*hRR)/hhRR; - real_type DDLL = (DL*hL+DLL*hLL)/hhLL; - - real_type t1 = -DR+DDRR; - real_type t3 = -DR+DDLL; - real_type t5 = DDLL-DDRR; - real_type t8 = hL*hL; - real_type t9 = t8*t8; - real_type t12 = hhLL*hhLL; - real_type t14 = hhRR*hhRR; - real_type t16 = hR*hR; - real_type t21 = t12*hhLL; - real_type t25 = 3*DR-4*DL; - real_type t28 = DL-(3.0/4.0)*DDRR; - real_type t38 = t14*hhRR; - real_type t41 = DL-(3.0/4.0)*DDLL; - real_type t48 = t16*hR; - real_type t58 = DL-(2.0/3.0)*DDRR; - real_type t70 = -hhRR+hR; - real_type t80 = 2*DL-DR; - real_type t83 = DL-DDRR/2; - real_type t103 = hhRR+hhLL; - real_type t105 = hR+hhLL; - real_type top, bot; - { - real_type t51 = (3*DL-2*DDLL)*t70; - real_type t52 = hhRR*hhRR; - real_type t55 = hR*hR; - top = (((4*t16*t41+t12*t25)*hhRR+4*(t12*t28-t14*t41)*hR+ - hhLL*(t14*t25+4*t16*t28)+t21*t1+t38*t3-t5*t48)*t8+ - hhRR*t3*t9-hR*t5*t9+(2*DL-DDLL)*t16*t14*t70+ - hhLL*t1*t9+t21*t14*t80-2*t21*t16*t83+t12*(t38*t80-2*t48*t83))*hL+ - t8*(t52*hR*t51+hhRR*(t55*t21+t55*t51) - -3*t21*hR*t58+(-t38*t55+3*t48*t58)*hhLL) - +2*t9*(t14*t3-t5*t16-t12*t1)-t105*t70*t103*hhRR*DL*hR*hhLL; - } - bot = (hhRR+hL)*(hL-hhLL)*(hR+hL)*t70*t103*t105; - return top/bot; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - first_deriv5p_R( - real_type DLL, real_type hLL, - real_type DL, real_type hL, - real_type DR, real_type hR, - real_type DRR, real_type hRR - ) { - real_type hhLL = hL+hLL; - real_type hhRR = hR+hRR; - real_type DDRR = (DR*hR+DRR*hRR)/hhRR; - real_type DDLL = (DL*hL+DLL*hLL)/hhLL; - real_type t1 = -DL+DDRR; - real_type t3 = DDLL-DL; - real_type t5 = DDLL-DDRR; - real_type t8 = hR*hR; - real_type t9 = t8*t8; - real_type t12 = hhLL*hhLL; - real_type t14 = hhRR*hhRR; - real_type t16 = hL*hL; - real_type t21 = t12*hhLL; - real_type t25 = 3*DL-4*DR; - real_type t28 = DR-(3.0/4.0)*DDRR; - real_type t38 = t14*hhRR; - real_type t41 = DR-(3.0/4.0)*DDLL; - real_type t48 = t16*hL; - real_type t55 = 2*DL-3*DR; - real_type t58 = DR-(2.0/3.0)*DDRR; - real_type t73 = hhRR+hL; - real_type t80 = 2*DR-DL; - real_type t83 = DR-DDRR/2; - real_type t103 = hhRR+hhLL; - real_type t105 = -hhLL+hL; - real_type top, bot; - { - real_type t47 = 2*DDLL-3*DR; - real_type t49 = hhRR*hhRR; - real_type t53 = hL*hL; - top = (((4*t16*t41+t12*t25)*hhRR+(-4*t12*t28+4*t14*t41)*hL+ - hhLL*(t14*t25+4*t16*t28)+t21*t1+t38*t3+t5*t48)*t8+hhRR*t3*t9+hL*t5*t9+( - -2*DR+DDLL)*t16*t14*t73+hhLL*t1*t9+t21*t14*t80 - -2*t21*t16*t83+t12*(t38*t80+2*t48*t83))*hR+ - t8*(t49*hL*t73*t47+hhRR*(-t53*t73*t47+t55*t21) - -3*t21*t58*hL+(-t38*t55+3*t48*t58)*hhLL) - -t105*t73*t103*hhRR*DR*hL*hhLL - +2*t9*(t5*t16+t12*t1-t14*t3); - } - bot = (hR-hhRR)*(hR+hhLL)*(hR+hL)*t103*t73*t105; - return top/bot; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - void - deriv_left( - real_type SR, - real_type hR, - real_type SRR, - real_type hRR, - real_type DyRR, - real_type & dy0, - real_type & dy1 - ) { - real_type t1 = hRR*hRR; - real_type t2 = t1*SR; - real_type t3 = DyRR/3; - real_type t8 = hR*hR; - real_type t14 = hR+hRR; - real_type t24 = t14*t14; - real_type hRRR = 3*hRR*hR; - dy0 = (hRRR*(SR-SRR+t3)-t8*SRR+t8*DyRR+t2)/(hRR*t14); - dy1 = ((hRRR+2*t8)*SRR-hRRR*t3-t8*DyRR+t2)/t24; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static - void - deriv_right( - real_type SL, - real_type hL, - real_type SLL, - real_type hLL, - real_type DyLL, - real_type & dyn, - real_type & dynm1 - ) { - real_type t1 = hLL*hLL; - real_type t2 = t1*SL; - real_type t3 = DyLL/3; - real_type t8 = hL*hL; - real_type t14 = hL+hLL; - real_type t24 = t14*t14; - dyn = (3*hLL*(SL-SLL+t3)*hL-t8*SLL+t8*DyLL+t2)/(hLL*t14); - dynm1 = ((3*hL*hLL+2*t8)*SLL-3*hL*hLL*t3-t8*DyLL+t2)/t24; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - second_deriv3p_C( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dpL, - real_type dp0, - real_type dpR - ) { - real_type hLR = hL*hR; - real_type hL2 = hL*hL; - real_type hL4 = hL2*hL2; - real_type hR2 = hR*hR; - real_type hR4 = hR2*hR2; - real_type top = hL4*(6*SR-4*dp0-2*dpR) + hR4*(4*dp0+2*dpL-6*SL) + - hLR*( hL2*(10*SR-8*dp0-2*dpR) - hR2*(10*SL-8*dp0-2*dpL) ); - real_type tmp = hR+hL; - real_type bot = tmp*tmp*tmp*hLR; - return top/bot; - } - - real_type - second_deriv3p_C( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dp0 - ) { - real_type hh = hL+hR; - real_type alpha = hL/hh; - real_type beta = hR/hh; - real_type DDR = (SR-dp0)/hR; - real_type DDL = (dp0-SL)/hL; - return 2*(alpha*DDR+beta*DDL); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - second_deriv3p_L( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dpL, - real_type dp0, - real_type dpR - ) { - real_type hLR = hL * hR; - real_type hL2 = hL * hL; - real_type hL4 = hL2 * hL2; - real_type hR2 = hR * hR; - real_type hR4 = hR2 * hR2; - real_type top = hL4 * (4 * SR - 2 * (dp0+dpR) ) - + hR4 * (6 * SL - 2 * dp0 - 4 * dpL) - + hL2 * hR2 * (20*SL - 12*dp0 - 8*dpL) - + hLR * hR2 * (20*SL - 8*dp0 - 12*dpL) - + hL2 * hLR * (10*SR - 8*dp0 - 2*dpR); - real_type hRpL = hR + hL; - real_type bot = hR2 * hL * (hRpL*hRpL); - return top/bot; - } - - real_type - second_deriv3p_L( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dpL - ) { - real_type hh = hL+hR; - real_type alpha = hL/hh; - real_type beta = hR/hh; - real_type t1 = (6*SL-2*SR-4*dpL)/hL; - real_type t3 = 2*(SL-dpL)/hL; - real_type t2 = 3*t3; - return t1*alpha*alpha+t2*alpha*beta+t3*beta*beta; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - real_type - second_deriv3p_R( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dpL, - real_type dp0, - real_type dpR - ) { - real_type hLR = hL * hR; - real_type hL2 = hL * hL; - real_type hL4 = hL2 * hL2; - real_type hR2 = hR * hR; - real_type hR4 = hR2 * hR2; - real_type top = hL4 * (2 * dp0 + 4 * dpR - 6 * SR) - + hR4 * (2 * (dp0+dpL) - 4*SL) - - hL2 * hLR * (20*SR - 8*dp0 - 12*dpR) - - hL2 * hR2 * (20*SR - 12*dp0 - 8*dpR) - - hR2 * hLR * (10*SL - 8*dp0 - 2*dpL); - real_type hRpL = hR + hL; - real_type bot = hR * hL2 * (hRpL*hRpL); - - return top/bot; - } - - real_type - second_deriv3p_R( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dpR - ) { - real_type hh = hL+hR; - real_type alpha = hL/hh; - real_type beta = hR/hh; - real_type t1 = 2*(dpR-SR)/hR; - real_type t2 = 3*t1; - real_type t3 = (2*SL-6*SR+4*dpR)/hR; - return t1*alpha*alpha+t2*alpha*beta+t3*beta*beta; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - first_derivative_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts - ) { - - size_t n = npts > 0 ? size_t( npts - 1 ) : 0; - - // special case n=2 -- use linear interpolation. - { - real_type hL = X[1] - X[0]; - real_type SL = (Y[1] - Y[0])/hL; - switch ( npts ) { - case 2: - Yp[0] = Yp[1] = SL; - return; - case 3: - { - real_type hR = X[2] - X[1]; - real_type SR = (Y[2] - Y[1])/hR; - Yp[0] = first_deriv3p_L( SL, hL, SR, hR ); - Yp[1] = first_deriv3p_C( SL, hL, SR, hR ); - Yp[2] = first_deriv3p_R( SL, hL, SR, hR ); - } - return; - case 4: - { - real_type hC = X[2] - X[1]; - real_type SC = (Y[2] - Y[1])/hC; - real_type hR = X[3] - X[2]; - real_type SR = (Y[3] - Y[2])/hR; - Yp[0] = first_deriv4p_L( SL, hL, SC, hC, SR, hR ); - Yp[1] = first_deriv3p_C( SL, hL, SC, hC ); - Yp[2] = first_deriv3p_C( SC, hC, SR, hR ); - Yp[3] = first_deriv4p_R( SL, hL, SC, hC, SR, hR ); - } - return; - } - } - - // loop through interior points. - for ( size_t i = 2; i < n-1 ; ++i ) { - - real_type hLL = X[i-1] - X[i-2]; - real_type hL = X[i+0] - X[i-1]; - real_type hR = X[i+1] - X[i+0]; - real_type hRR = X[i+2] - X[i+1]; - - real_type SLL = (Y[i-1]-Y[i-2])/hLL; - real_type SL = (Y[i+0]-Y[i-1])/hL; - real_type SR = (Y[i+1]-Y[i+0])/hR; - real_type SRR = (Y[i+2]-Y[i+1])/hRR; - - Yp[i] = first_deriv5p_C( SLL, hLL, SL, hL, SR, hR, SRR, hRR ); - } - { - real_type hL = X[n] - X[n-1]; - real_type hLL = X[n-1] - X[n-2]; - real_type SL = (Y[n] - Y[n-1])/hL; - real_type SLL = (Y[n-1] - Y[n-2])/hLL; - deriv_right( SL, hL, SLL, hLL, Yp[n-2], Yp[n], Yp[n-1] ); - } - { - real_type hR = X[1] - X[0]; - real_type hRR = X[2] - X[1]; - real_type SR = (Y[1] - Y[0])/hR; - real_type SRR = (Y[2] - Y[1])/hRR; - deriv_left( SR, hR, SRR, hRR, Yp[2], Yp[0], Yp[1] ); - } - - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - second_derivative_build( - real_type const * X, - real_type const * Y, - real_type const * Yp, - real_type * Ypp, - integer npts - ) { - - size_t n = npts > 0 ? size_t( npts - 1 ) : 0; - - // special case n=2 -- use linear interpolation. - switch ( npts ) { - case 2: - Ypp[0] = Ypp[1] = 0; - return; - } - - // loop through interior points. - for ( size_t i = 1; i < n ; ++i ) { - - real_type hL = X[i+0] - X[i-1]; - real_type hR = X[i+1] - X[i+0]; - real_type SL = (Y[i+0]-Y[i-1])/hL; - real_type SR = (Y[i+1]-Y[i+0])/hR; - - real_type dp0 = Yp[i]; - real_type dpL = Yp[i-1]; - real_type dpR = Yp[i+1]; - - Ypp[i] = second_deriv3p_C( SL, hL, SR, hR, dp0, dpL, dpR ); - } - { - real_type hL = X[1] - X[0]; - real_type hR = X[2] - X[1]; - real_type SL = (Y[1]-Y[0])/hL; - real_type SR = (Y[2]-Y[1])/hR; - real_type dp0 = Yp[1]; - real_type dpL = Yp[0]; - real_type dpR = Yp[2]; - Ypp[0] = second_deriv3p_L( SL, hL, SR, hR, dp0, dpL, dpR ); - } - { - real_type hL = X[n-1] - X[n-2]; - real_type hR = X[n] - X[n-1]; - real_type SL = (Y[n-1]-Y[n-2])/hL; - real_type SR = (Y[n]-Y[n-1])/hR; - real_type dp0 = Yp[n-1]; - real_type dpL = Yp[n-2]; - real_type dpR = Yp[n]; - Ypp[n] = second_deriv3p_R( SL, hL, SR, hR, dp0, dpL, dpR ); - } - - } - - #endif - - } diff --git a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.rst.txt b/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.rst.txt deleted file mode 100644 index 23dbf2b4..00000000 --- a/docs/_sources/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.rst.txt +++ /dev/null @@ -1,285 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh: - -Program Listing for File SplinesUtils.hh -======================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesUtils.hh``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: cpp - - /*--------------------------------------------------------------------------*\ - | | - | Copyright (C) 2016 | - | | - | , __ , __ | - | /|/ \ /|/ \ | - | | __/ _ ,_ | __/ _ ,_ | - | | \|/ / | | | | \|/ / | | | | - | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ | - | /| /| | - | \| \| | - | | - | Enrico Bertolazzi | - | Dipartimento di Ingegneria Industriale | - | Universita` degli Studi di Trento | - | email: enrico.bertolazzi@unitn.it | - | | - \*--------------------------------------------------------------------------*/ - /****************************************************************************\ - Copyright (c) 2016, Enrico Bertolazzi - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - The views and conclusions contained in the software and documentation are those - of the authors and should not be interpreted as representing official policies, - either expressed or implied, of the FreeBSD Project. - \****************************************************************************/ - #pragma once - - #ifndef SPLINES_UTILS_HH - #define SPLINES_UTILS_HH - - #include "Splines.hh" - - namespace Splines { - - using std::fpclassify; - - /* - // __ _ _ _ _ _ __ __ - // / _(_)_ __ (_) |_ ___ __| (_)/ _|/ _| ___ _ __ ___ _ __ ___ ___ - // | |_| | '_ \| | __/ _ \ / _` | | |_| |_ / _ \ '__/ _ \ '_ \ / __/ _ \ - // | _| | | | | | || __/ | (_| | | _| _| __/ | | __/ | | | (_| __/ - // |_| |_|_| |_|_|\__\___| \__,_|_|_| |_| \___|_| \___|_| |_|\___\___| - */ - - #ifndef DOXYGEN_SHOULD_SKIP_THIS - - /*\ - | Given - | DL = (y[k]-y[k-1])/hL; hL = x[k]-x[k-1]; - | DR = (y[k+1]-y[k])/hR; hR = x[k+1]-x[k]; - | approximate the first derivative at x[k] - */ - static - inline - real_type - first_deriv3p_C( - real_type DL, real_type hL, - real_type DR, real_type hR - ) { - return (DL*hR+DR*hL)/(hR+hL); - } - - /*\ - | Given - | DL = (y[k]-y[k-1])/hL; hL = x[k]-x[k-1]; - | DR = (y[k+1]-y[k])/hR; hR = x[k+1]-x[k]; - | approximate the first derivative at x[k-1] - */ - static - inline - real_type - first_deriv3p_L( - real_type DL, real_type hL, - real_type DR, real_type hR - ) { - return ((2*DL-DR)*hL+DL*hR)/(hR+hL); - } - - /*\ - | Given - | DL = (y[k]-y[k-1])/hL; hL = x[k]-x[k-1]; - | DR = (y[k+1]-y[k])/hR; hR = x[k+1]-x[k]; - | approximate the first derivative at x[k+1] - */ - static - inline - real_type - first_deriv3p_R( - real_type DL, real_type hL, - real_type DR, real_type hR - ) { - return ((2*DR-DL)*hR+DR*hL)/(hR+hL); - } - - /*\ - | Given - | DLLL = (y[k-2]-y[k-3])/hLLL; hLLL = x[k-2]-x[k-3]; - | DLL = (y[k-1]-y[k-2])/hLL; hLL = x[k-1]-x[k-2]; - | DL = (y[k]-y[k-1])/hL; hL = x[k]-x[k-1]; - | approximate the first derivative at x[k] - */ - real_type - first_deriv4p_R( - real_type DLLL, real_type hLLL, - real_type DLL, real_type hLL, - real_type DL, real_type hL - ); - - /*\ - | Given - | DR = (y[k+1]-y[k])/hR; hR = x[k+1]-x[k]; - | DRR = (y[k+2]-y[k+1])/hRR; hRR = x[k+2]-x[k+1]; - | DRRR = (y[k+3]-y[k+2])/hRRR; hRRR = x[k+3]-x[k+2]; - | approximate the first derivative at x[k] - */ - real_type - first_deriv4p_L( - real_type DR, real_type hR, - real_type DRR, real_type hRR, - real_type DRRR, real_type hRRR - ); - - /*\ - | Given - | DLL = (y[k-1]-y[k-2])/hLL; hLL = x[k-1]-x[k-2]; - | DL = (y[k]-y[k-1])/hL; hL = x[k]-x[k-1]; - | DR = (y[k+1]-y[k])/hR; hR = x[k+1]-x[k]; - | DRR = (y[k+2]-y[k-1])/hRR; hRR = x[k+2]-x[k+1]; - | approximate the first derivative at x[k] - */ - real_type - first_deriv5p_C( - real_type DLL, real_type hLL, - real_type DL, real_type hL, - real_type DR, real_type hR, - real_type DRR, real_type hRR - ); - - /*\ - | Given - | DLL = (y[k-1]-y[k-2])/hLL; hLL = x[k-1]-x[k-2]; - | DL = (y[k]-y[k-1])/hL; hL = x[k]-x[k-1]; - | DR = (y[k+1]-y[k])/hR; hR = x[k+1]-x[k]; - | DRR = (y[k+2]-y[k-1])/hRR; hRR = x[k+2]-x[k+1]; - | approximate the first derivative at x[k-1] - */ - real_type - first_deriv5p_L( - real_type DLL, real_type hLL, - real_type DL, real_type hL, - real_type DR, real_type hR, - real_type DRR, real_type hRR - ); - - /*\ - | Given - | DLL = (y[k-1]-y[k-2])/hLL; hLL = x[k-1]-x[k-2]; - | DL = (y[k]-y[k-1])/hL; hL = x[k]-x[k-1]; - | DR = (y[k+1]-y[k])/hR; hR = x[k+1]-x[k]; - | DRR = (y[k+2]-y[k-1])/hRR; hRR = x[k+2]-x[k+1]; - | approximate the first derivative at x[k+1] - */ - real_type - first_deriv5p_R( - real_type DLL, real_type hLL, - real_type DL, real_type hL, - real_type DR, real_type hR, - real_type DRR, real_type hRR - ); - - real_type - second_deriv3p_C( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dpL, - real_type dp0, - real_type dpR - ); - - real_type - second_deriv3p_C( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dp0 - ); - - real_type - second_deriv3p_L( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dpL, - real_type dp0, - real_type dpR - ); - - real_type - second_deriv3p_L( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dpL - ); - - real_type - second_deriv3p_R( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dpL, - real_type dp0, - real_type dpR - ); - - real_type - second_deriv3p_R( - real_type SL, - real_type hL, - real_type SR, - real_type hR, - real_type dpR - ); - - void - first_derivative_build( - real_type const * X, - real_type const * Y, - real_type * Yp, - integer npts - ); - - void - second_derivative_build( - real_type const * X, - real_type const * Y, - real_type const * Yp, - real_type * Ypp, - integer npts - ); - - #endif - - } - - #endif diff --git a/docs/_sources/api-cpp/typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1.rst.txt b/docs/_sources/api-cpp/typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1.rst.txt deleted file mode 100644 index 34b8b9d3..00000000 --- a/docs/_sources/api-cpp/typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1: - -Typedef Splines::integer -======================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Typedef Documentation ---------------------- - - -.. doxygentypedef:: Splines::integer diff --git a/docs/_sources/api-cpp/typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f.rst.txt b/docs/_sources/api-cpp/typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f.rst.txt deleted file mode 100644 index 75471e5d..00000000 --- a/docs/_sources/api-cpp/typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f: - -Typedef Splines::ostream_type -============================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Typedef Documentation ---------------------- - - -.. doxygentypedef:: Splines::ostream_type diff --git a/docs/_sources/api-cpp/typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a.rst.txt b/docs/_sources/api-cpp/typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a.rst.txt deleted file mode 100644 index 78de2e2b..00000000 --- a/docs/_sources/api-cpp/typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a: - -Typedef Splines::real_type -========================== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh` - - -Typedef Documentation ---------------------- - - -.. doxygentypedef:: Splines::real_type diff --git a/docs/_sources/api-cpp/unabridged_api.rst.txt b/docs/_sources/api-cpp/unabridged_api.rst.txt deleted file mode 100644 index 6c2384b8..00000000 --- a/docs/_sources/api-cpp/unabridged_api.rst.txt +++ /dev/null @@ -1,301 +0,0 @@ - -Full API --------- - -Namespaces -********** - - -.. toctree:: - :maxdepth: 5 - - namespace_Splines.rst - -Classes and Structs -******************* - - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_akima2_dspline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_akima_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_bessel_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_bi_cubic_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_bi_cubic_spline_base.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_bilinear_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_bi_quintic_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_bi_quintic_spline_base.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_constant_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_cubic_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_cubic_spline_base.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_hermite_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_linear_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_pchip_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_quintic_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_quintic_spline_base.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_spline.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_spline1_d.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_spline2_d.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_spline_set.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_spline_set_1_1_binary_search.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_spline_surf.rst - -.. toctree:: - :maxdepth: 5 - - class_splines_1_1_spline_vec.rst - -Enums -***** - - -.. toctree:: - :maxdepth: 5 - - enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed.rst - -.. toctree:: - :maxdepth: 5 - - enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb.rst - -.. toctree:: - :maxdepth: 5 - - enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe.rst - -.. toctree:: - :maxdepth: 5 - - enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df.rst - -.. toctree:: - :maxdepth: 5 - - enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7.rst - -Functions -********* - - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7.rst - -.. toctree:: - :maxdepth: 5 - - function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f.rst - -Variables -********* - - -.. toctree:: - :maxdepth: 5 - - variable_namespace_splines_1a052166b362a237026fef2fff7e415070.rst - -Defines -******* - - -.. toctree:: - :maxdepth: 5 - - define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f.rst - -.. toctree:: - :maxdepth: 5 - - define__splines_8hh_1a258c7c0530540979548721b55b2338c9.rst - -.. toctree:: - :maxdepth: 5 - - define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde.rst - -Typedefs -******** - - -.. toctree:: - :maxdepth: 5 - - typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1.rst - -.. toctree:: - :maxdepth: 5 - - typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f.rst - -.. toctree:: - :maxdepth: 5 - - typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a.rst diff --git a/docs/_sources/api-cpp/unabridged_orphan.rst.txt b/docs/_sources/api-cpp/unabridged_orphan.rst.txt deleted file mode 100644 index fee2aa17..00000000 --- a/docs/_sources/api-cpp/unabridged_orphan.rst.txt +++ /dev/null @@ -1,228 +0,0 @@ -:orphan: - - -Full API -======== - -Directories -*********** - - -.. toctree:: - :maxdepth: 5 - - dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.rst - -Files -***** - - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.rst diff --git a/docs/_sources/api-cpp/variable_namespace_splines_1a052166b362a237026fef2fff7e415070.rst.txt b/docs/_sources/api-cpp/variable_namespace_splines_1a052166b362a237026fef2fff7e415070.rst.txt deleted file mode 100644 index 18b1ad7b..00000000 --- a/docs/_sources/api-cpp/variable_namespace_splines_1a052166b362a237026fef2fff7e415070.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _exhale_variable_namespace_splines_1a052166b362a237026fef2fff7e415070: - -Variable Splines::spline_type_1D -================================ - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc` - - -Variable Documentation ----------------------- - - -.. doxygenvariable:: Splines::spline_type_1D diff --git a/docs/_sources/api-matlab/class_base_hermite.rst.txt b/docs/_sources/api-matlab/class_base_hermite.rst.txt deleted file mode 100644 index 21c0ca63..00000000 --- a/docs/_sources/api-matlab/class_base_hermite.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_base_hermite: - -Class BaseHermite -================= - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public handle`` - - -Class Documentation -------------------- - - -.. doxygenclass:: BaseHermite - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-matlab/class_spline1_d.rst.txt b/docs/_sources/api-matlab/class_spline1_d.rst.txt deleted file mode 100644 index 7a2e404c..00000000 --- a/docs/_sources/api-matlab/class_spline1_d.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_spline1_d: - -Class Spline1D -============== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public handle`` - - -Class Documentation -------------------- - - -.. doxygenclass:: Spline1D - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-matlab/class_spline2_d.rst.txt b/docs/_sources/api-matlab/class_spline2_d.rst.txt deleted file mode 100644 index 1b7cbcbb..00000000 --- a/docs/_sources/api-matlab/class_spline2_d.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_spline2_d: - -Class Spline2D -============== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public handle`` - - -Class Documentation -------------------- - - -.. doxygenclass:: Spline2D - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-matlab/class_spline_set.rst.txt b/docs/_sources/api-matlab/class_spline_set.rst.txt deleted file mode 100644 index a281a92d..00000000 --- a/docs/_sources/api-matlab/class_spline_set.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_spline_set: - -Class SplineSet -=============== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public handle`` - - -Class Documentation -------------------- - - -.. doxygenclass:: SplineSet - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-matlab/class_spline_vec.rst.txt b/docs/_sources/api-matlab/class_spline_vec.rst.txt deleted file mode 100644 index 8119babe..00000000 --- a/docs/_sources/api-matlab/class_spline_vec.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _exhale_class_class_spline_vec: - -Class SplineVec -=============== - -- Defined in :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m` - - -Inheritance Relationships -------------------------- - -Base Type -********* - -- ``public handle`` - - -Class Documentation -------------------- - - -.. doxygenclass:: SplineVec - :members: - :protected-members: - :undoc-members: \ No newline at end of file diff --git a/docs/_sources/api-matlab/class_view_hierarchy.rst.txt b/docs/_sources/api-matlab/class_view_hierarchy.rst.txt deleted file mode 100644 index 895cdbfb..00000000 --- a/docs/_sources/api-matlab/class_view_hierarchy.rst.txt +++ /dev/null @@ -1,19 +0,0 @@ - -Class Hierarchy ---------------- - - -.. raw:: html - -
- - -.. end raw html for treeView - - diff --git a/docs/_sources/api-matlab/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox.rst.txt b/docs/_sources/api-matlab/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox.rst.txt deleted file mode 100644 index 167011ec..00000000 --- a/docs/_sources/api-matlab/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox.rst.txt +++ /dev/null @@ -1,16 +0,0 @@ -.. _dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox: - - -Directory toolbox -================= - - -*Directory path:* ``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox`` - -Subdirectories --------------- - -- :ref:`dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib` - - - diff --git a/docs/_sources/api-matlab/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib.rst.txt b/docs/_sources/api-matlab/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib.rst.txt deleted file mode 100644 index a1d245b4..00000000 --- a/docs/_sources/api-matlab/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -.. _dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib: - - -Directory lib -============= - - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -*Directory path:* ``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib`` - - -Files ------ - -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m` -- :ref:`file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m` - - diff --git a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m.rst.txt b/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m.rst.txt deleted file mode 100644 index 962d2e8f..00000000 --- a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m: - -File BaseHermite.m -================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/BaseHermite.m``) ---------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m.rst - - - - - - - - - - -Classes -------- - - -- :ref:`exhale_class_class_base_hermite` - diff --git a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m.rst.txt b/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m.rst.txt deleted file mode 100644 index 7c16bba9..00000000 --- a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m.rst.txt +++ /dev/null @@ -1,31 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m: - -File CompileSplinesLib.m -======================== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/CompileSplinesLib.m``) ---------------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m.rst - - - - - - - - - diff --git a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m.rst.txt b/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m.rst.txt deleted file mode 100644 index c8dd15d1..00000000 --- a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m: - -File Spline1D.m -=============== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/Spline1D.m``) ------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m.rst - - - - - - - - - - -Classes -------- - - -- :ref:`exhale_class_class_spline1_d` - diff --git a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m.rst.txt b/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m.rst.txt deleted file mode 100644 index 191fe1ba..00000000 --- a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m: - -File Spline2D.m -=============== - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/Spline2D.m``) ------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m.rst - - - - - - - - - - -Classes -------- - - -- :ref:`exhale_class_class_spline2_d` - diff --git a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m.rst.txt b/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m.rst.txt deleted file mode 100644 index b325e45e..00000000 --- a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m: - -File SplineSet.m -================ - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/SplineSet.m``) -------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m.rst - - - - - - - - - - -Classes -------- - - -- :ref:`exhale_class_class_spline_set` - diff --git a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m.rst.txt b/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m.rst.txt deleted file mode 100644 index ae6adf5b..00000000 --- a/docs/_sources/api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ - -.. _file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m: - -File SplineVec.m -================ - -|exhale_lsh| :ref:`Parent directory ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. contents:: Contents - :local: - :backlinks: none - -Definition (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/SplineVec.m``) -------------------------------------------------------------------------------------------------------------------------- - - -.. toctree:: - :maxdepth: 1 - - program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m.rst - - - - - - - - - - -Classes -------- - - -- :ref:`exhale_class_class_spline_vec` - diff --git a/docs/_sources/api-matlab/file_view_hierarchy.rst.txt b/docs/_sources/api-matlab/file_view_hierarchy.rst.txt deleted file mode 100644 index 6f44f7e6..00000000 --- a/docs/_sources/api-matlab/file_view_hierarchy.rst.txt +++ /dev/null @@ -1,19 +0,0 @@ - -File Hierarchy --------------- - - -.. raw:: html - -
- - -.. end raw html for treeView - - diff --git a/docs/_sources/api-matlab/library_root.rst.txt b/docs/_sources/api-matlab/library_root.rst.txt deleted file mode 100644 index b4f2bb25..00000000 --- a/docs/_sources/api-matlab/library_root.rst.txt +++ /dev/null @@ -1,74 +0,0 @@ - -MATLAB API -========== - -.. include:: class_view_hierarchy.rst - -.. include:: file_view_hierarchy.rst - -.. include:: unabridged_api.rst - - - -.. raw:: html - - diff --git a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m.rst.txt b/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m.rst.txt deleted file mode 100644 index 724ea6cb..00000000 --- a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m.rst.txt +++ /dev/null @@ -1,506 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m: - -Program Listing for File BaseHermite.m -====================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/BaseHermite.m``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: MATLAB - - classdef BaseHermite < handle - - methods - - function self = BaseHermite() - % - % Build a matlab object storing Hermite base evaluator - % - end - - function delete(self) - % - % Destroy a matlab object storing Hermite base evaluator - % - end - % - % -------------------------------------------------------------------- - % - function varargout = base( ~, varargin ) - % - % Evaluate an Hermite base (cubic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base( t ) % base for the interval [0,1] - % BASE = object.base( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 4 whose columns are the values of - % the Hermite base. - % - % .. math:: - % - % \begin{eqnarray} - % h_1(t) &=& x^2(3-2x) \\ - % h_0(t) &=& 1-h_1(t) \\ - % h_2(t) &=& x(x(x-2)+1) \\ - % h_3(t) &=& x^2(x-1) - % \end{eqnarray} - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3] = object.base( t ) % base for the interval [0,1] - % [h0,h1,h2,h3] = object.base( t, H ) % base for the interval [0,H] - % - [varargout{1:nargout}] = BaseHermiteWrapper('base',varargin{:}); - end - % -------------------------------------------------------------------- - function varargout = base_D( ~, varargin )1 - % - % Evaluate an Hermite base derivative at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base_D( t ) % base derivative for the interval [0,1] - % BASE = object.base_D( t, H ) % base derivative for the interval [0,H] - % - % BASE is a matrix length(t) x 4 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3] = object.base_D( t ) % base derivative for the interval [0,1] - % [h0,h1,h2,h3] = object.base_D( t, H ) % base derivative for the interval [0,H] - % - [varargout{1:nargout}] = BaseHermiteWrapper('base_D',varargin{:}); - end - % -------------------------------------------------------------------- - function varargout = base_DD( ~, varargin ) - % - % Evaluate an Hermite base second derivative at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base_DD( t ) % base second derivative for the interval [0,1] - % BASE = object.base_DD( t, H ) % base second derivative for the interval [0,H] - % - % BASE is a matrix length(t) x 4 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3] = object.base_DD( t ) % base second derivative for the interval [0,1] - % [h0,h1,h2,h3] = object.base_DD( t, H ) % base second derivative for the interval [0,H] - % - [varargout{1:nargout}] = BaseHermiteWrapper('base_DD',varargin{:}); - end - % -------------------------------------------------------------------- - function varargout = base_DDD( ~, varargin ) - % - % Evaluate an Hermite base third derivative at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base_DDD( t ) % base third derivative for the interval [0,1] - % BASE = object.base_DDD( t, H ) % base third derivative for the interval [0,H] - % - % BASE is a matrix length(t) x 4 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3] = object.base_DDD( t ) % base third derivative for the interval [0,1] - % [h0,h1,h2,h3] = object.base_DDD( t, H ) % base third derivative for the interval [0,H] - % - [varargout{1:nargout}] = BaseHermiteWrapper('base_DDD',varargin{:}); - end - % - % -------------------------------------------------------------------- - % - function P = eval( ~, varargin ) - % - % Evaluate the cubic polynomial defined on Hermite data: - % - % .. math:: - % - % \begin{eqnarray} - % \mathbf{p}(t) &=& h_0(t)\mathbf{p}_0+ h_1(t)\mathbf{p}_1+ h_2(t)\mathbf{t}_0+ h_3(t)\mathbf{t}_1 \\ - % \mathbf{p}(t,H) &=& h_0(t/H)\mathbf{p}_0+ h_1(t/H)\mathbf{p}_1+ H (h_2(t/H)\mathbf{t}_0+ h_3(t/H)\mathbf{t}_1) - % \end{eqnarray} - % - % .. code-block:: matlab - % - % values = object.eval( t, P0, P1, T0, T1 ) - % values = object.eval( t, P0, P1, T0, T1, H ) - % - P = BaseHermiteWrapper('eval',varargin{:}); - end - % -------------------------------------------------------------------- - function dP = eval_D( ~, varargin ) - % - % Evaluate the derivative :math:`\mathbf{p}'(t)` of the cubic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval_D( t, P0, P1, T0, T1 ) - % values = object.eval_D( t, P0, P1, T0, T1, H ) - % - dP = BaseHermiteWrapper('eval_D',varargin{:}); - end - % -------------------------------------------------------------------- - function ddP = eval_DD( ~, varargin ) - % - % Evaluate the second derivative :math:`\mathbf{p}''(t)` of the cubic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval_DD( t, P0, P1, T0, T1 ) - % values = object.eval_DD( t, P0, P1, T0, T1, H ) - % - ddP = BaseHermiteWrapper('eval_DD',varargin{:}); - end - % -------------------------------------------------------------------- - function dddP = eval_DDD( ~, varargin ) - % - % Evaluate the third derivative :math:`\mathbf{p}'''(t)` of the cubic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval_DDD( t, P0, P1, T0, T1 ) - % values = object.eval_DDD( t, P0, P1, T0, T1, H ) - % - dddP = BaseHermiteWrapper('eval_DDD',varargin{:}); - end - % - % -------------------------------------------------------------------- - % - function varargout = base5( ~, varargin ) - % - % Evaluate an Hermite base (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5( t ) % base for the interval [0,1] - % BASE = object.base5( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base that are 6 polynomials of degree 5 with the properties - % - % .. math:: - % - % \begin{equation} - % \begin{array}{cccccc} - % h_1(0) = 1 & h_1(1) = 0 & h'_1(0) = 1 & h'_1(1) = 0 & h''_1(1) = 1 & h''_1(1) = 0 \\ - % h_0(0) = 0 & h_0(1) = 1 & h'_0(0) = 0 & h'_0(1) = 0 & h''_0(1) = 0 & h''_0(1) = 0 \\ - % h_2(0) = 0 & h_2(1) = 0 & h'_2(0) = 1 & h'_2(1) = 0 & h''_2(1) = 0 & h''_2(1) = 0 \\ - % h_3(0) = 0 & h_3(1) = 0 & h'_3(0) = 0 & h'_3(1) = 1 & h''_3(1) = 0 & h''_3(1) = 0 \\ - % h_4(0) = 0 & h_4(1) = 0 & h'_4(0) = 0 & h'_4(1) = 0 & h''_4(1) = 1 & h''_4(1) = 0 \\ - % h_5(0) = 0 & h_5(1) = 0 & h'_5(0) = 0 & h'_5(1) = 0 & h''_5(1) = 0 & h''_5(1) = 1 \\ - % \end{array} - % \end{equation} - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5( t, H ) % base for the interval [0,H] - % - [varargout{1:nargout}] = BaseHermiteWrapper('base5',varargin{:}); - end - % -------------------------------------------------------------------- - function varargout = base5_D( ~, varargin ) - % - % Evaluate an Hermite base derivatives (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5_D( t ) % base for the interval [0,1] - % BASE = object.base5_D( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5_D( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5_D( t, H ) % base for the interval [0,H] - % - [varargout{1:nargout}] = BaseHermiteWrapper('base5_D',varargin{:}); - end - % -------------------------------------------------------------------- - function varargout = base5_DD( ~, varargin ) - % - % Evaluate an Hermite base second derivatives (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5_DD( t ) % base for the interval [0,1] - % BASE = object.base5_DD( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5_DD( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5_DD( t, H ) % base for the interval [0,H] - % - [varargout{1:nargout}] = BaseHermiteWrapper('base5_DD',varargin{:}); - end - % -------------------------------------------------------------------- - function varargout = base5_DDD( ~, varargin ) - % - % Evaluate an Hermite base third derivatives (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5_DDD( t ) % base for the interval [0,1] - % BASE = object.base5_DDD( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5_DDD( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5_DDD( t, H ) % base for the interval [0,H] - % - [varargout{1:nargout}] = BaseHermiteWrapper('base5_DDD',varargin{:}); - end - % -------------------------------------------------------------------- - function varargout = base5_DDDD( ~, varargin ) - % - % Evaluate an Hermite base 4th derivatives (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5_DDDD( t ) % base for the interval [0,1] - % BASE = object.base5_DDDD( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5_DDDD( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5_DDDD( t, H ) % base for the interval [0,H] - % - [varargout{1:nargout}] = BaseHermiteWrapper('base5_DDDD',varargin{:}); - end - % -------------------------------------------------------------------- - function varargout = base5_DDDDD( ~, varargin ) - % - % Evaluate an Hermite base 5th derivatives (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5_DDDDD( t ) % base for the interval [0,1] - % BASE = object.base5_DDDDD( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5_DDDDD( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5_DDDDD( t, H ) % base for the interval [0,H] - % - [varargout{1:nargout}] = BaseHermiteWrapper('base5_DDDDD',varargin{:}); - end - % - % -------------------------------------------------------------------- - % - function P = eval5( ~, varargin ) - % - % Evaluate the quintic polynomial defined on Hermite data: - % - % .. math:: - % - % \begin{eqnarray} - % \mathbf{p}(t) &=& h_0(t)\mathbf{p}_0+ h_1(t)\mathbf{p}_1+ - % h_2(t)\mathbf{t}_0+ h_3(t)\mathbf{t}_1+ - % h_4(t)\mathbf{j}_0+ h_5(t)\mathbf{j}_1 \\ - % \mathbf{p}(t,H) &=& h_0(t/H)\mathbf{p}_0+ h_1(t/H)\mathbf{p}_1+ - % H (h_2(t/H)\mathbf{t}_0+ h_3(t/H)\mathbf{t}_1)+ - % H^2 (h_4(t/H)\mathbf{t}_0+ h_5(t/H)\mathbf{j}_1) - % \end{eqnarray} - % - % .. code-block:: matlab - % - % values = object.eval5( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5( t, P0, P1, T0, T1, J0, J1, H ) - % - P = BaseHermiteWrapper('eval5',varargin{:}); - end - % -------------------------------------------------------------------- - function dP = eval5_D( ~, varargin ) - % - % Evaluate the derivative :math:`\mathbf{p}'(t)` of the quintic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval5_D( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5_D( t, P0, P1, T0, T1, J0, J1, H ) - % - dP = BaseHermiteWrapper('eval5_D',varargin{:}); - end - % -------------------------------------------------------------------- - function ddP = eval5_DD( ~, varargin ) - % - % Evaluate the second derivative :math:`\mathbf{p}''(t)` of the quintic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval5_DD( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5_DD( t, P0, P1, T0, T1, J0, J1, H ) - % - ddP = BaseHermiteWrapper('eval5_DD',varargin{:}); - end - % -------------------------------------------------------------------- - function dddP = eval5_DDD( ~, varargin ) - % - % Evaluate the third derivative :math:`\mathbf{p}'''(t)` of the quintic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval5_DDD( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5_DDD( t, P0, P1, T0, T1, J0, J1, H ) - % - dddP = BaseHermiteWrapper('eval5_DDD',varargin{:}); - end - % -------------------------------------------------------------------- - function ddddP = eval5_DDDD( ~, varargin ) - % - % Evaluate the 4th derivative :math:`\mathbf{p}''''(t)` of the quintic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval5_DDDD( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5_DDDD( t, P0, P1, T0, T1, J0, J1, H ) - % - ddddP = BaseHermiteWrapper('eval5_DDDD',varargin{:}); - end - % -------------------------------------------------------------------- - function dddddP = eval5_DDDDD( ~, varargin ) - % - % Evaluate the 5th derivative :math:`\mathbf{p}'''''(t)` of the quintic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval5_DDDDD( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5_DDDDD( t, P0, P1, T0, T1, J0, J1, H ) - % - dddddP = BaseHermiteWrapper('eval5_DDDDD',varargin{:}); - end - % - % -------------------------------------------------------------------- - % - function [P0,P1,P2,P3] = hermite_to_bezier( ~, p0, p1, t0, t1 ) - % - % Given the cubic polynomial defined on Hermite data: - % - % .. math:: - % - % \mathbf{p}(t) = h_0(t)\mathbf{p}_0+ h_1(t)\mathbf{p}_1+ h_2(t)\mathbf{t}_0+ h_3(t)\mathbf{t}_1 - % - % return the Bezier polynomial of the same cubic - % - [P0,P1,P2,P3] = BaseHermiteWrapper('hermite_to_bezier',p0, p1, t0, t1); - end - % -------------------------------------------------------------------- - function [P0,P1,T0,T1] = bezier_to_hermite( ~, p0, p1, p2, p3 ) - % - % Given the cubic polynomial defined with Bezier polygon - % return the Hermite data for the same polynomial - % - [P0,P1,T0,T1] = BaseHermiteWrapper('bezier_to_hermite',p0, p1, p2, p3); - end - % - % -------------------------------------------------------------------- - % - function [D1,sqrtD1] = L2_first_derivative( ~ ) - sqrtD1 = BaseHermiteWrapper('L2_first_derivative'); - D1 = sqrtD1*sqrtD1.'; - end - % -------------------------------------------------------------------- - function [D2,sqrtD2] = L2_second_derivative( ~ ) - sqrtD2 = BaseHermiteWrapper('L2_second_derivative'); - D2 = sqrtD2*sqrtD2.'; - end - % -------------------------------------------------------------------- - function [D3,sqrtD3] = L2_third_derivative( ~ ) - sqrtD3 = BaseHermiteWrapper('L2_third_derivative'); - D3 = sqrtD3*sqrtD3.'; - end - % -------------------------------------------------------------------- - function L = approximate_length( ~, varargin ) - % - % Approximate the length of the cubic polynomial :math:`\mathbf{p}(t)` defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.approximate_length( t, P0, P1, T0, T1 ) - % values = object.approximate_length( t, P0, P1, T0, T1, H ) - % - % The length is approximated usin 100 linear segment. - % - L = BaseHermiteWrapper( 'approximate_length', varargin{:} ); - end - % -------------------------------------------------------------------- - function [P0,P1,T0,T1] = cut( ~, varargin ) - % - % Cut the cubic polynomial :math:`\mathbf{p}(t)` defined on Hermite data - % on the interval [a,b] and return the new Hermite data - % - % .. code-block:: matlab - % - % [new_P0,new_P1,new_T0,new_T1] = object.cut( a, b, P0, P1, T0, T1 ) - % [new_P0,new_P1,new_T0,new_T1] = object.cut( a, b, P0, P1, T0, T1, H ) - % - % The parametrization of the new Hermite data is on [0,1] - % - [P0,P1,T0,T1] = BaseHermiteWrapper( 'cut', varargin{:} ); - end - end - end diff --git a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m.rst.txt b/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m.rst.txt deleted file mode 100644 index deb56b84..00000000 --- a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m.rst.txt +++ /dev/null @@ -1,96 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m: - -Program Listing for File CompileSplinesLib.m -============================================ - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/CompileSplinesLib.m``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: MATLAB - - clc; - clear functions; - [~,mexLoaded] = inmem('-completenames'); - - old_dir = cd(fileparts(which(mfilename))); - - NAMES = { - 'SplineSetMexWrapper', ... - 'BaseHermiteWrapper', ... - 'SplineVecMexWrapper', ... - 'Spline1DMexWrapper', ... - 'Spline2DMexWrapper' ... - }; - - lst_cc = dir('../src/*.cc'); - - LIB_SRCS = ''; - LIB_OBJS = ''; - MEX_CMD = 'mex -DSPLINES_DO_NOT_USE_GENERIC_CONTAINER -largeArrayDims -I../src -I../src/Utils '; - - CMD = [ MEX_CMD ' -c ']; - if isunix - CMD = [CMD, 'CXXFLAGS="\$CXXFLAGS -Wall -O2 -g" ']; - elseif ispc - end - CMD = [ CMD, LIB_SRCS ]; - - disp('---------------------------------------------------------'); - for kk=1:length(lst_cc) - name = lst_cc(kk).name(1:end-3); - LIB_SRCS = [ LIB_SRCS, ' ../src/', name, '.cc' ]; - if isunix - LIB_OBJS = [ LIB_OBJS, name, '.o ' ]; - elseif ispc - LIB_OBJS = [ LIB_OBJS, name, '.obj ' ]; - end - CMD1 = [ CMD ' ../src/', name, '.cc' ]; - fprintf(1,'Compiling: %s.cc\n',name); - eval(CMD1); - end - - MROOT = matlabroot; - - for k=1:length(NAMES) - N=NAMES{k}; - disp('---------------------------------------------------------'); - fprintf(1,'Compiling: %s\n',N); - - CMD = [ 'while mislocked(''' N '''); munlock(''' N '''); end;']; - eval(CMD); - - CMD = [ MEX_CMD, ' -output ../bin/', N ]; - CMD = [ CMD, ' -largeArrayDims ../src_mex/mex_', N, '.cc ', LIB_OBJS ]; - if ismac - CMD = [CMD, ' CXXFLAGS="\$CXXFLAGS -Wall -O2 -g"']; - elseif isunix - % Workaround for MATLAB 2020 that force dynamic link with old libstdc++ - % solution: link with static libstdc++ - ARCH = computer('arch'); - PATH1 = [MROOT, '/bin/', ARCH]; - PATH2 = [MROOT, '/extern/bin/', ARCH]; - CMD = [ CMD, ... - ' CXXFLAGS="\$CXXFLAGS -Wall -O2 -g"' ... - ' LDFLAGS="\$LDFLAGS -static-libgcc -static-libstdc++"' ... - ' LINKLIBS="-L' PATH1 ' -L' PATH2 ' -lMatlabDataArray -lmx -lmex -lmat -lm "' ... - ]; - elseif ispc - end - disp(CMD); - eval(CMD); - end - - for kk=1:length(lst_cc) - name = lst_cc(kk).name(1:end-3); - if isunix - delete([ name, '.o' ]); - elseif ispc - delete([ name, '.obj' ]); - end - end - - cd(old_dir); - - disp('----------------------- DONE ----------------------------'); diff --git a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m.rst.txt b/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m.rst.txt deleted file mode 100644 index 54557472..00000000 --- a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m.rst.txt +++ /dev/null @@ -1,146 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m: - -Program Listing for File Spline1D.m -=================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/Spline1D.m``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: MATLAB - - classdef Spline1D < handle - %% MATLAB class wrapper for the underlying C++ class - properties (SetAccess = private, Hidden = true) - objectHandle; % Handle to the underlying C++ class instance - end - - methods - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function self = Spline1D( kind, varargin ) - % kind [, t, pnts, subtype ] - self.objectHandle = Spline1DMexWrapper( 'new', kind ); - if nargin > 1 - Spline1DMexWrapper( 'build', self.objectHandle, varargin{:} ); - end - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function delete(self) - % Destroy the C++ class instance - Spline1DMexWrapper( 'delete', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function build( self, varargin ) - % x, y [, yp or subtype] - Spline1DMexWrapper( 'build', self.objectHandle, varargin{:} ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function varargout = eval( self, x ) - varargout{1} = Spline1DMexWrapper( 'eval', self.objectHandle, x ); - if nargout >= 2 - varargout{2} = Spline1DMexWrapper( 'eval_D', self.objectHandle, x ); - end - if nargout >= 3 - varargout{3} = Spline1DMexWrapper( 'eval_DD', self.objectHandle, x ); - end - if nargout >= 4 - varargout{4} = Spline1DMexWrapper( 'eval_DDD', self.objectHandle, x ); - end - if nargout >= 5 - varargout{5} = Spline1DMexWrapper( 'eval_DDDD', self.objectHandle, x ); - end - if ~( nargout == 1 || nargout == 2 || nargout == 3 ) - error( 'Spline1D.eval, nargout = %d must be 1, 2, 3, 4 or 5\n', nargout ); - end - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function dp = eval_D( self, x ) - dp = Spline1DMexWrapper( 'eval_D', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ddp = eval_DD( self, x ) - ddp = Spline1DMexWrapper( 'eval_DD', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function dddp = eval_DDD( self, x ) - dddp = Spline1DMexWrapper( 'eval_DDD', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ddddp = eval_DDDD( self, x ) - ddddp = Spline1DMexWrapper( 'eval_DDDD', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function dddddp = eval_DDDDD( self, x ) - dddddp = Spline1DMexWrapper( 'eval_DDDDD', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_closed( self ) - Spline1DMexWrapper( 'make_closed', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_opened( self ) - Spline1DMexWrapper( 'make_opened', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ok = is_closed( self ) - ok = Spline1DMexWrapper( 'is_closed', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_bounded( self ) - Spline1DMexWrapper( 'make_bounded', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_unbounded( self ) - Spline1DMexWrapper( 'make_unbounded', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ok = is_bounded( self ) - ok = Spline1DMexWrapper( 'is_bounded', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_extended_constant( self ) - Spline1DMexWrapper( 'make_extended_constant', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_extended_not_constant( self ) - Spline1DMexWrapper( 'make_extended_not_constant', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ok = is_extended_constant( self ) - ok = Spline1DMexWrapper( 'is_extended_constant', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function x = xBegin( self ) - x = Spline1DMexWrapper( 'xBegin', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function x = xEnd( self ) - x = Spline1DMexWrapper( 'xEnd', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function y = yBegin( self ) - y = Spline1DMexWrapper( 'yBegin', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function y = yEnd( self ) - y = Spline1DMexWrapper( 'yEnd', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function x = xMin( self ) - x = Spline1DMexWrapper( 'xMin', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function x = xMax( self ) - x = Spline1DMexWrapper( 'xMax', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function y = yMin( self ) - y = Spline1DMexWrapper( 'yMin', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function y = yMax( self ) - y = Spline1DMexWrapper( 'yMax', self.objectHandle ); - end - end - end diff --git a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m.rst.txt b/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m.rst.txt deleted file mode 100644 index 677bcf87..00000000 --- a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m.rst.txt +++ /dev/null @@ -1,123 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m: - -Program Listing for File Spline2D.m -=================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/Spline2D.m``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: MATLAB - - classdef Spline2D < handle - %% MATLAB class wrapper for the underlying C++ class - properties (SetAccess = private, Hidden = true) - objectHandle; % Handle to the underlying C++ class instance - end - - methods - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function self = Spline2D( name, varargin ) - self.objectHandle = Spline2DMexWrapper( 'new', name ); - if nargin > 1 - Spline2DMexWrapper( 'build', self.objectHandle, ... - varargin{1}, varargin{2}, varargin{3} ); - end - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function delete(self) - % Destroy the C++ class instance - Spline2DMexWrapper( 'delete', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function build( self, x, y, z ) - Spline2DMexWrapper( 'build', self.objectHandle, x, y ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function varargout = eval( self, x, y ) - varargout{1} = Spline2DMexWrapper( 'eval', self.objectHandle, x, y ); - if nargout >= 3 - varargout{2} = Spline2DMexWrapper( 'eval_Dx', self.objectHandle, x, y ); - varargout{3} = Spline2DMexWrapper( 'eval_Dy', self.objectHandle, x, y ); - end - if nargout >= 6 - varargout{4} = Spline2DMexWrapper( 'eval_Dxx', self.objectHandle, x, y ); - varargout{5} = Spline2DMexWrapper( 'eval_Dxy', self.objectHandle, x, y ); - varargout{6} = Spline2DMexWrapper( 'eval_Dyy', self.objectHandle, x, y ); - end - if ~( nargout == 1 || nargout == 3 || nargout == 6 ) - error( 'Spline2D.eval, nargout = %d must be 1, 3 or 6\n', nargout); - end - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function Dx = eval_Dx( self, x, y ) - Dx = Spline2DMexWrapper( 'eval_Dx', self.objectHandle, x, y ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function Dy = eval_Dy( self, x, y ) - Dy = Spline2DMexWrapper( 'eval_Dy', self.objectHandle, x, y ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function Dxx = eval_Dxx( self, x, y ) - Dxx = Spline2DMexWrapper( 'eval_Dxx', self.objectHandle, x, y ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function Dxy = eval_Dxy( self, x, y ) - Dxy = Spline2DMexWrapper( 'eval_Dxy', self.objectHandle, x, y ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function Dyy = eval_Dyy( self, x, y ) - Dyy = Spline2DMexWrapper( 'eval_Dyy', self.objectHandle, x, y ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_x_closed( self ) - Spline2DMexWrapper( 'make_x_closed', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_x_opened( self ) - Spline2DMexWrapper( 'make_x_opened', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ok = is_x_closed( self ) - ok = Spline2DMexWrapper( 'is_x_closed', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_x_bounded( self ) - Spline2DMexWrapper( 'make_x_bounded', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_x_unbounded( self ) - Spline2DMexWrapper( 'make_x_unbounded', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ok = is_x_bounded( self ) - ok = Spline2DMexWrapper( 'is_x_bounded', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_y_closed( self ) - Spline2DMexWrapper( 'make_y_closed', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_y_opened( self ) - Spline2DMexWrapper( 'make_y_opened', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ok = is_y_closed( self ) - ok = Spline2DMexWrapper( 'is_y_closed', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_y_bounded( self ) - Spline2DMexWrapper( 'make_y_bounded', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function make_y_unbounded( self ) - Spline2DMexWrapper( 'make_y_unbounded', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ok = is_y_bounded( self ) - ok = Spline2DMexWrapper( 'is_y_bounded', self.objectHandle ); - end - end - end diff --git a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m.rst.txt b/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m.rst.txt deleted file mode 100644 index 77477978..00000000 --- a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m.rst.txt +++ /dev/null @@ -1,63 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m: - -Program Listing for File SplineSet.m -==================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/SplineSet.m``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: MATLAB - - classdef SplineSet < handle - %% MATLAB class wrapper for the underlying C++ class - properties (SetAccess = private, Hidden = true) - objectHandle; % Handle to the underlying C++ class instance - end - - methods - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function self = SplineSet( varargin ) - self.objectHandle = SplineSetMexWrapper( 'new' ); - if nargin > 0 - SplineSetMexWrapper( 'build', self.objectHandle, ... - varargin{1}, varargin{2}, varargin{3} ); - end - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function delete(self) - % Destroy the C++ class instance - SplineSetMexWrapper( 'delete', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function build( self, kinds, x, y ) - SplineSetMexWrapper( 'build', self.objectHandle, kinds, x, y ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function p = eval( self, x ) - p = SplineSetMexWrapper( 'eval', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function dp = eval_D( self, x ) - dp = SplineSetMexWrapper( 'eval_D', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ddp = eval_DD( self, x ) - ddp = SplineSetMexWrapper( 'eval_DD', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function dddp = eval_DDD( self, x ) - dddp = SplineSetMexWrapper( 'eval_DDD', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function t = tmin( self, x ) - t = SplineSetMexWrapper( 'tmin', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function t = tmax( self, x ) - t = SplineSetMexWrapper( 'tmax', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end - end diff --git a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m.rst.txt b/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m.rst.txt deleted file mode 100644 index b087e164..00000000 --- a/docs/_sources/api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m.rst.txt +++ /dev/null @@ -1,87 +0,0 @@ - -.. _program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m: - -Program Listing for File SplineVec.m -==================================== - -|exhale_lsh| :ref:`Return to documentation for file ` (``/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/toolbox/lib/SplineVec.m``) - -.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS - -.. code-block:: MATLAB - - classdef SplineVec < handle - %% MATLAB class wrapper for the underlying C++ class - properties (SetAccess = private, Hidden = true) - objectHandle; % Handle to the underlying C++ class instance - end - - methods - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function self = SplineVec() - self.objectHandle = SplineVecMexWrapper( 'new' ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function delete(self) - % Destroy the C++ class instance - SplineVecMexWrapper( 'delete', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function setup( self, y ) - SplineVecMexWrapper( 'setup', self.objectHandle, y ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function knots( self, x ) - SplineVecMexWrapper( 'knots', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function k = get_knots( self ) - k = SplineVecMexWrapper( 'getNodes', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function chord( self ) - SplineVecMexWrapper( 'chord', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function centripetal( self ) - SplineVecMexWrapper( 'centripetal', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function CatmullRom( self ) - SplineVecMexWrapper( 'CatmullRom', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function p = eval( self, x ) - p = SplineVecMexWrapper( 'eval', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function dp = eval_D( self, x ) - dp = SplineVecMexWrapper( 'eval_D', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function ddp = eval_DD( self, x ) - ddp = SplineVecMexWrapper( 'eval_DD', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function dddp = eval_DDD( self, x ) - dddp = SplineVecMexWrapper( 'eval_DDD', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function cur = curvature( self, x ) - cur = SplineVecMexWrapper( 'eval_curvature', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function cur_D = curvature_D( self, x ) - cur_D = SplineVecMexWrapper( 'eval_curvature_D', self.objectHandle, x ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function t = tmin( self, x ) - t = SplineVecMexWrapper( 'tmin', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function t = tmax( self, x ) - t = SplineVecMexWrapper( 'tmax', self.objectHandle ); - end - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end - end diff --git a/docs/_sources/api-matlab/unabridged_api.rst.txt b/docs/_sources/api-matlab/unabridged_api.rst.txt deleted file mode 100644 index 08d1e904..00000000 --- a/docs/_sources/api-matlab/unabridged_api.rst.txt +++ /dev/null @@ -1,32 +0,0 @@ - -Full API --------- - -Classes and Structs -******************* - - -.. toctree:: - :maxdepth: 5 - - class_base_hermite.rst - -.. toctree:: - :maxdepth: 5 - - class_spline1_d.rst - -.. toctree:: - :maxdepth: 5 - - class_spline2_d.rst - -.. toctree:: - :maxdepth: 5 - - class_spline_set.rst - -.. toctree:: - :maxdepth: 5 - - class_spline_vec.rst diff --git a/docs/_sources/api-matlab/unabridged_orphan.rst.txt b/docs/_sources/api-matlab/unabridged_orphan.rst.txt deleted file mode 100644 index 1692a339..00000000 --- a/docs/_sources/api-matlab/unabridged_orphan.rst.txt +++ /dev/null @@ -1,53 +0,0 @@ -:orphan: - - -Full API -======== - -Directories -*********** - - -.. toctree:: - :maxdepth: 5 - - dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox.rst - -.. toctree:: - :maxdepth: 5 - - dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib.rst - -Files -***** - - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m.rst - -.. toctree:: - :maxdepth: 5 - - file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m.rst diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt deleted file mode 100644 index a5eb53ec..00000000 --- a/docs/_sources/index.rst.txt +++ /dev/null @@ -1,20 +0,0 @@ -.. Splines documentation master file, created by - sphinx-quickstart on Fri Mar 19 01:43:44 2021. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Splines -======= - -Splines is a set of C++ classes (with MATLAB mex interface) which implements various spline interpolation. - -Contents --------- - -.. toctree:: - :maxdepth: 2 - - readme.rst - api-cpp/library_root.rst - api-c/library_root.rst - api-matlab/library_root.rst diff --git a/docs/_sources/readme.rst.txt b/docs/_sources/readme.rst.txt deleted file mode 100644 index 7b3d4286..00000000 --- a/docs/_sources/readme.rst.txt +++ /dev/null @@ -1,11 +0,0 @@ - -.. include:: ../../README.rst - -License -------- - -.. literalinclude:: ../../license.txt - -.. - mdinclude:: ../../README.md -.. diff --git a/docs/_static/basic.css b/docs/_static/basic.css index 2c89ac6c..dfa5b460 100644 --- a/docs/_static/basic.css +++ b/docs/_static/basic.css @@ -277,25 +277,25 @@ p.rubric { font-weight: bold; } -img.align-left, .figure.align-left, object.align-left { +img.align-left, figure.align-left, .figure.align-left, object.align-left { clear: left; float: left; margin-right: 1em; } -img.align-right, .figure.align-right, object.align-right { +img.align-right, figure.align-right, .figure.align-right, object.align-right { clear: right; float: right; margin-left: 1em; } -img.align-center, .figure.align-center, object.align-center { +img.align-center, figure.align-center, .figure.align-center, object.align-center { display: block; margin-left: auto; margin-right: auto; } -img.align-default, .figure.align-default { +img.align-default, figure.align-default, .figure.align-default { display: block; margin-left: auto; margin-right: auto; @@ -319,7 +319,8 @@ img.align-default, .figure.align-default { /* -- sidebars -------------------------------------------------------------- */ -div.sidebar { +div.sidebar, +aside.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #ddb; padding: 7px; @@ -377,12 +378,14 @@ div.body p.centered { /* -- content of sidebars/topics/admonitions -------------------------------- */ div.sidebar > :last-child, +aside.sidebar > :last-child, div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; } div.sidebar::after, +aside.sidebar::after, div.topic::after, div.admonition::after, blockquote::after { @@ -455,20 +458,22 @@ td > :last-child { /* -- figures --------------------------------------------------------------- */ -div.figure { +div.figure, figure { margin: 0.5em; padding: 0.5em; } -div.figure p.caption { +div.figure p.caption, figcaption { padding: 0.3em; } -div.figure p.caption span.caption-number { +div.figure p.caption span.caption-number, +figcaption span.caption-number { font-style: italic; } -div.figure p.caption span.caption-text { +div.figure p.caption span.caption-text, +figcaption span.caption-text { } /* -- field list styles ----------------------------------------------------- */ diff --git a/docs/_static/cloud.css b/docs/_static/cloud.css index c35bb550..b9a917cf 100644 --- a/docs/_static/cloud.css +++ b/docs/_static/cloud.css @@ -10,925 +10,170 @@ *****************************************************/ @import url("basic.css"); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +@import url("cloud_colors.css"); +@import url("cloud_tables.css"); +@import url("cloud_sidebar.css"); +@import url("cloud_code.css"); * { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; } body { - padding: 0; - color: #000; - font-family: Arial, sans-serif; - font-size: 100%; - line-height: 1.5em; - - - margin: 1em 1em 0; - background: #6f6700; - background-attachment: fixed; - + padding: 0; + color: #000; + font-family: var(---font0), sans-serif; + font-size: 100%; /* scala tutti i font */ + line-height: 1.5em; + margin: 0px; /* margine bordo esterno */ + background: #ffffff; /* colore bordo esterno */ } - - - - - - - - - - - - - - - - - - - - - - - +div.relbar-top, div.relbar-bottom { + background: var(---barra-top-bottom-bg2); /* Sfondo (dietro) barra top/bottom */ + padding: 0 1em; +} div.related { - margin: 0 auto; - max-width: 11.5in; - background: #57A75E; - line-height: 1.5em; - padding: .75em 0; - color: #ffffff; - text-shadow: 1px 1px 1px rgba(0,0,0,.3); - - - - + margin: 0 auto; + max-width: 11.5in; + background: var(---barra-top-bottom-bg); /* Sfondo barra top/bottom */ + line-height: 1.5em; /* altezzza barra */ + padding: .75em 0; + color: #FFF; /* colore >> sulla barra */ + /* text-shadow: 1px 1px 1px rgba(0,0,0,.3); */ } -div.relbar-top div.related -{ - - - -moz-border-radius: .7em .7em 0 0; - -webkit-border-radius: .7em .7em 0 0; - -o-border-radius: .7em .7em 0 0; - -ms-border-radius: .7em .7em 0 0; - border-radius: .7em .7em 0 0; - - - +div.relbar-top div.related { + -moz-border-radius: var(---barra-top-bottom-ray) var(---barra-top-bottom-ray) 0 0; + -webkit-border-radius: var(---barra-top-bottom-ray) var(---barra-top-bottom-ray) 0 0; + -o-border-radius: var(---barra-top-bottom-ray) var(---barra-top-bottom-ray) 0 0; + -ms-border-radius: var(---barra-top-bottom-ray) var(---barra-top-bottom-ray) 0 0; + border-radius: var(---barra-top-bottom-ray) var(---barra-top-bottom-ray) 0 0; } div.relbar-bottom div.related { - - - -moz-border-radius: 0 0 .7em .7em; - -webkit-border-radius: 0 0 .7em .7em; - -o-border-radius: 0 0 .7em .7em; - -ms-border-radius: 0 0 .7em .7em; - border-radius: 0 0 .7em .7em; - - - - - + -moz-border-radius: 0 0 var(---barra-top-bottom-ray) var(---barra-top-bottom-ray); + -webkit-border-radius: 0 0 var(---barra-top-bottom-ray) var(---barra-top-bottom-ray); + -o-border-radius: 0 0 var(---barra-top-bottom-ray) var(---barra-top-bottom-ray); + -ms-border-radius: 0 0 var(---barra-top-bottom-ray) var(---barra-top-bottom-ray); + border-radius: 0 0 var(---barra-top-bottom-ray) var(---barra-top-bottom-ray); } - - - - - - - - - - div.related a { - display: inline-block; - padding: 0.3em 0.6em; - - - -moz-border-radius: 0.8em; - -webkit-border-radius: 0.8em; - -o-border-radius: 0.8em; - -ms-border-radius: 0.8em; - border-radius: 0.8em; - + display: inline-block; + padding: 0.3em 0.6em; + -moz-border-radius: var(---barra-top-bottom-buttom-ray); + -webkit-border-radius: var(---barra-top-bottom-buttom-ray); + -o-border-radius: var(---barra-top-bottom-buttom-ray); + -ms-border-radius: var(---barra-top-bottom-buttom-ray); + border-radius: var(---barra-top-bottom-buttom-ray); - font-weight: bold; - color: #ffffff; - border: 1px solid transparent; + font-weight: bold; + background: var(---barra-top-bottom-bg3); + color: #ffffff; + border: 1px solid var(---barra-top-bottom-buttom-color); /* colore bordo pulsante */ } div.related li.right a { - background: rgba(0,0,0,.1); - font-weight: normal; -} - -div.related a:hover, -div.related li.right a:hover -{ - background: #fff9e4; - color: #d39110; - border-color: #F8D186; - text-decoration: none; - text-shadow: none; - - - -moz-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - -webkit-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - -o-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - -ms-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - - - + font-weight: bold; + color: #ffffff; + background: var(---barra-top-bottom-bg3); + border: 1px solid var(---barra-top-bottom-buttom-color); /* colore bordo pulsante */ } - - - - - - - - - - div.document { - - position: relative; - margin: 0 auto; - max-width: 11.5in; - background: #ededed; - - -} - - - -div.documentwrapper -{ - float: left; - width: 100%; -} - -div.bodywrapper -{ - margin: 0 0 0 3in; - -} - - - - - - - - - - - - - - - - - -div.document.sidebar-hidden div.bodywrapper { - margin-left: 0; -} + position: relative; + margin: 0 auto; + max-width: 11.5in; + background: var(---pannello-principale-bg); + border-left: 2px solid #F0F0F0; + border-right: 2px solid #F0F0F0; + } div.body { - min-height: 6in; - - - - background-color: #f8f8f8; - border-left: 1px solid rgba(0,0,0,.15); - - - - - -moz-box-shadow: -1px 0 2px rgba(0,0,0,.15); - -webkit-box-shadow: -1px 0 2px rgba(0,0,0,.15); - -o-box-shadow: -1px 0 2px rgba(0,0,0,.15); - -ms-box-shadow: -1px 0 2px rgba(0,0,0,.15); - box-shadow: -1px 0 2px rgba(0,0,0,.15); - - - - - - - line-height: 1.5em; - - color: #000000; - padding: 30px 20px; - - - - - - min-width: 0; - max-width: none; + min-height: 6in; + background-color: var(---pannello-destro-bg); + line-height: 1.5em; + color: var(---pannello-destro-colore-testo); + padding: 30px 20px; + border-width: 2px; + min-width: 0; + max-width: none; } - - - - - - - - - - - - -div.sphinxsidebar -{ - margin-top: 0; - width: 3in; - - font-size: 90%; - line-height: 1.25em; - - -} - - - - - - - - - - - - - - - - - -div.document.sidebar-hidden div.sphinxsidebar { display: none; } - -div.sphinxsidebarwrapper -{ - padding: 1em 0 0 10px; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 -{ - padding: 0; - margin: 24px 16px 0 0; - - font-family: Arial, sans-serif; - font-weight: normal; - color: #777777; -} - -div.sphinxsidebar h3 { font-size: 1.4em; } -div.sphinxsidebar h4 { font-size: 1.3em; } - -div.sphinxsidebar h3 a, -div.sphinxsidebar h4 a -{ - color: #777777; -} - -div.sphinxsidebar p -{ - color: #777777; -} - -div.sphinxsidebar p.topless -{ - margin: 5px 10px 10px 10px; -} - -div.sphinxsidebar ul -{ - margin: 10px; - margin-right: 0; - padding: 0; - color: #777777; -} - -div.sphinxsidebar a -{ - color: #006906; - border: 1px solid transparent; - border-width: 1px 0; -} - -div.sphinxsidebar a:hover -{ - color: #d39110; - background: #fff9e4; - border-color: #F8D186; - text-decoration: none; -} - -div.sphinxsidebar ul li a -{ - overflow: hidden; - white-space: nowrap; -} - -div.sphinxsidebar ul li a:hover -{ - - display: inline-table; - min-width: 98%; - min-width: calc(100% - 5px); - -} - -div.sphinxsidebar a:active +div.related a:hover, +div.related li.right a:hover { - color: #777777; -} + background: #6BBD7B; /*fff9e4;*/ + color: #d39110; + border-color: #F8D186; + text-decoration: none; + text-shadow: none; -div.sphinxsidebar p.logo -{ - margin: 1em 0 0 -10px; - text-align: center; - max-width: 100%; + -moz-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -webkit-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -o-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -ms-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); } -div.sphinxsidebar p.logo a +div.documentwrapper { - display: inline-block; - - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -o-border-radius: 3px; - -ms-border-radius: 3px; - border-radius: 3px; - - - + float: left; + width: 100%; } - -div.sphinxsidebarwrapper > h3:first-child, -div.sphinxsidebarwrapper > h4:first-child, -div.sphinxsidebarwrapper > div:first-child > h3:first-child, -div.sphinxsidebarwrapper > div:first-child > h4:first-child +div.bodywrapper { - margin-top: .2em; + margin: 0 0 0 3in; } - - - -div.sphinxsidebar ul, -div.sphinxsidebar ul ul, -div.sphinxprev p.topless, -div.sphinxnext p.topless -{ - list-style: none; +div.document.sidebar-hidden div.bodywrapper { margin-left: 0; } -div.sphinxsidebar ul ul -{ - margin-left: 1.5em; -} - - -div.sphinxsidebar ul a, -div.sphinxprev a, -div.sphinxnext a -{ - position: relative; - display: block; - padding: 1px 4px 3px 5px; - margin: 0 5px 0 0; - border: 1px solid transparent; - - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -o-border-radius: 3px; - -ms-border-radius: 3px; - border-radius: 3px; - - -} - - -div.sphinxsidebar ul a:hover, div.sphinxprev a:hover, div.sphinxnext a:hover { - background: #fff9e4; - border-color: #F8D186; - color: #d39110; - text-decoration: none; -} - - - div.sphinx-toc ul a:not([href^="#"]):hover - { - position: relative; - overflow: visible; - } - - div.sphinx-toc ul a:not([href^="#"]):hover:before - { - content: "⇒"; - position: absolute; - right: 100%; - font-size: 1.5em; - margin-right: 4px; - opacity: 0.7; - } - - - - - - - - -div.sphinxglobaltoc ul a[href="#"] -{ - font-style: italic; -} - -div.sphinxglobaltoc ul a:not([href*="#"]) -{ - font-size: 0.95em; - font-style: italic; -} - - -div.sphinx-toc li -{ - position: relative; + background: #fff9e4; + border-color: #F8D186; + color: #d39110; + text-decoration: none; } -div.sphinx-toc li:before -{ - position: absolute; - left: -0.8em; - color: #d39110; -} - - - - div.sphinx-toc li.current.active:not(.focus):before - { - content: "▼"; - top: 0.1em; - opacity: 0.5; - } - - - - div.sphinx-toc li.focus.local:before - { - content: "▶"; - opacity: 0.7; - - - - } - - - div.sphinx-toc > ul:not(:hover) li.focus.child:before - { - content: "⇒"; - opacity: 0.5; - font-size: 1.5em; - margin-left: -4px; - } - - -div.sphinx-toc li.focus.local > a:not(:hover) -{ - color: #d39110; -} - - -div.sphinx-toc li.toc-toggle > a:after -{ - content: "[–]"; - padding-left: .25em; - filter: progid:DXImageTransform.Microsoft.Alpha(Opacity= - 50); - opacity: 0.5; - -} - -div.sphinx-toc li.toc-toggle.closed > a:after -{ - content: "[+]"; -} - - - - - -div#searchbox { - margin-right: 10px; /* make this match sphinxsidebarwrapper left margin */ -} - -div#searchbox form > div { - display: inline-block; - margin-right: -0.4em; -} - -div.sphinxsidebar input, -h1#search-documentation ~ form input -{ - border: 1px solid rgba(0,0,0,.15); - font-family: sans-serif; - font-size: 1em; -} - -div#searchbox input[type="submit"], -h1#search-documentation ~ form > input[type="submit"] -{ - background: #F2F2F2; - - - -moz-border-radius: 0 5px 5px 0; - -webkit-border-radius: 0 5px 5px 0; - -o-border-radius: 0 5px 5px 0; - -ms-border-radius: 0 5px 5px 0; - border-radius: 0 5px 5px 0; - - - -} - -div#searchbox input[type="submit"]:hover, -h1#search-documentation ~ form input[type="submit"]:hover, -button.sidebar-toggle#sidebar-hide:hover, -button.sidebar-toggle#sidebar-show:hover, -.highlight .copybutton:hover -{ - background: #fff9e4; - color: #d39110; - border-color: #F8D186; -} - -h1#search-documentation ~ form input[type="text"]:focus, -div.sphinxsidebar input[type="text"]:focus -{ - border-color: #F8D186; -} - -.highlight .copybutton:hover:not(:active), -div.sphinxsidebar button:hover:not(:active), -div.sphinxsidebar input[type="submit"]:hover:not(:active), -h1#search-documentation ~ form input[type="submit"]:hover, -button.sidebar-toggle:hover:not(:active) -{ - - - -moz-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - -webkit-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - -o-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - -ms-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - - - -} - -button.sidebar-toggle::-moz-focus-inner, -.highlight .copybutton::-moz-focus-inner -{ - border: 0; -} - -div.sphinxsidebar .searchtip -{ - color: #999999; -} - -#searchbox .highlight-link a[href$="hideSearchWords()"] -{ - display: block; - padding: 0 1em; - font-size: 80%; - text-align: right; -} - -#searchbox .highlight-link a[href$="hideSearchWords()"]:before -{ - content: "\00D7"; - font-weight: bold; - padding-right: 0.25em; -} - - -.sidebar-toggle-group -{ - position: absolute; - width: 3in; - top: 0; - left: 0; - z-index: 1; -} - - .sidebar-toggle-group.no-js { display: none; } - - - - - - - - - - - - - - - - - - div.document.sidebar-hidden .sidebar-toggle-group - { - width: auto; - } - - div.document.document-hidden .sidebar-toggle-group - { - width: 100%; - } - -button.sidebar-toggle -{ - margin: 0; - padding: 6px 12px; - - color: #777777; - font-size: 1em; - white-space: nowrap; -} - -button#sidebar-hide -{ - position: absolute; - - top: 0; - right: -1px; - - - background: transparent; - border: 1px solid rgba(0,0,0,.15); - - border-top-width: 0; - - - border-bottom-left-radius: 0.7em; - -} - - - - - - - - -button#sidebar-show -{ - position: absolute; - top: 0; - - left: 0; - - - background: #F2F2F2; - border: 1px solid rgba(0,0,0,.15); - - border-top-width: 0; - - - border-bottom-right-radius: 0.7em; - -} - - - - - div.footer { - color: #B0B0B0; - width: 100%; - padding: 9px 0; - text-align: center; - font-size: 75%; + color: var(---footer-color); + background: var(---footer-color-bg); - + width: 100%; + padding: 9px 0; + text-align: center; + font-size: 75%; + width: auto; + /* box-shadow: 0 50vh 0 50vh #1A4162; */ } div.footer button.link { - margin: 0 -1px; - padding: 0; - background: none; - border: none; - font-size: inherit; - font-family: inherit; + margin: 0 -1px; + padding: 0; + background: none; + border: none; + font-size: inherit; + font-family: inherit; } div.footer a, @@ -941,22 +186,20 @@ div.footer button.link div.footer a:hover, div.footer button.link:hover { - color: white; + color: white; } div.footer + div.footer, div.footer + script + div.footer { - margin-top: -12px; + margin-top: -12px; } - - - - - - +div.footer, div.footer a:not(:hover) +{ + color: var(---footer-color-text); +} div.body h1, div.body h2, @@ -966,362 +209,233 @@ div.body h4, div.body h5, div.body h6 { - font-family: Arial, sans-serif; - font-weight: normal; - color: #333; - clear: both; - + font-family: var(---font1); + font-weight: normal; + color: #093755; /* colore HEADING 1 */ + clear: both; } - - - - - div.body h1 { - - - - - - - font-size: 2.0em; - line-height: 1.5em; - margin: 1.5em - 0 - 1.5em - 0; - - text-align: center; - + font-size: 2.0em; + line-height: 1.5em; + margin: 1.5em 0 1.5em 0; + text-align: center; } - div.body > .section > h1 { - - - - - margin: 0.562em - 0 - 1.5em - 0; + margin: 0.562em 0 1.5em 0; + padding: 6px 10px; + background-color: #F0F8FD; + border: 1px solid #D2EAFA; + border-width: 0px 0px 0px 8px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + border-radius: 5px; } div.body h1 + .subtitle { - opacity: 0.54; - font-style: italic; - font-weight: bold; - margin-bottom: 2.25rem; - margin-top: -2.25rem; - text-align: center; -}div.body h2, -div.body p.rubric -{ - - - - - - - font-size: 1.875em; - line-height: 1.6em; - margin: 0.8em - 0 - 0.8em - 0; - -} - -div.body h3 -{ - - - - - - - font-size: 1.625em; - line-height: 1.8461538461538463em; - margin: 0.692em - 0 - 0.692em - 0; - -} -div.body h2, -div.body p.rubric, -.section.emphasize-children > .section > h3, -#table-of-contents > h1, -h1#search-documentation -{ - - - padding: 6px 10px; - background-color: #75c47c; - border: 1px solid rgba(0,0,0,.1); - border-width: 0 0 0 6px; - color: inherit; - text-shadow: 1px 1px rgba(0,0,0,.1); - - - - - - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - -o-border-radius: 5px; - -ms-border-radius: 5px; - border-radius: 5px; - - - -} - - - - - - - - + opacity: 0.54; + font-style: italic; + font-weight: bold; + margin-bottom: 2.25rem; + margin-top: -2.25rem; + text-align: center; +} +div.body h2, +div.body p.rubric +{ + font-size: 1.875em; + line-height: 1.6em; + margin: 0.8em 0 0.8em 0; +} +div.body h3 +{ + font-size: 1.625em; + line-height: 1.8461538461538463em; + padding: 3px 5px; + margin: 5px 1px 5px 1px; + background-color: #FDF2E6; + border: 1px solid #F9CB9A; + border-width: 0px 0px 0px 4px; + display: inline; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} div.body h2, div.body p.rubric, -#table-of-contents > h1, -h1#search-documentation +.section.emphasize-children > .section > h3 { - - - - - - - margin: 0.8em - 1px - 0.8em - 1px; + padding: 1px 10px; + background-color: #F4FDF9; + border: 1px solid #D4F7E8; + border-width: 0px 0px 0px 6px; + text-align: center; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + border-radius: 5px; } - .section.emphasize-children > .section > h3 { - - - - - - - margin: 0.923em - 1px - 0.923em - 1px; - + margin: 0.923em 1px 0.923em 1px; } div.body p.rubric, .section.emphasize-children > .section > h3 { - - background-color: #d2e7d0; - - -} - - - - - div.body h2:hover a.headerlink:not(:hover), - .section.emphasize-children > .section > h3:hover a.headerlink:not(:hover) - { - filter: progid:DXImageTransform.Microsoft.Alpha(Opacity= - 40); - opacity: 0.4; - - } - - - div.body h2.highlighted, - .section.emphasize-children > .section > h3.highlighted - { - background-color: #fbe54e; - border-color: #F8D186; - color: #333; - } + background-color: #F7F9E6; /* colore sezione secondo livello */ + border: 1px solid #EAEFBD; + border-width: 1px 1px 1px 4px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + border-radius: 5px; +} +div.body h2:hover a.headerlink:not(:hover), +section.emphasize-children > .section > h3:hover a.headerlink:not(:hover) +{ + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); + opacity: 0.4; +} +div.body h2.highlighted, +section.emphasize-children > .section > h3.highlighted +{ + background-color: #FCFFC4; + border-color: #F9FF8A; + color: #333; +} div.body h4 { - - - - - - - font-size: 1.25em; - line-height: 1.2em; - margin: 1.2em - 0 - 1.2em - 0; - - clear: both; -} -div.body h5 { - - - - - - font-size: 1.1em; - line-height: 1.3636363636363635em; - margin: 1.364em - 0 - 1.364em - 0; - } -div.body h6 { - - - - - - font-size: 1.0em; - line-height: 1.5em; - margin: 1.5em - 0 - 1.5em - 0; - }#table-of-contents > h1, -h1#search-documentation -{ - margin-top: 0; + font-size: 1.25em; + line-height: 1.2em; + margin: 1.2em 01.2em 0; + clear: both; } +div.body h5 { + font-size: 1.1em; + line-height: 1.3636363636363635em; + margin: 1.364em 0 1.364em 0; +} + +div.body h6 { + font-size: 1.0em; + line-height: 1.5em; + margin: 1.5em 0 1.5em 0; + } .toctree-wrapper.highlight-pages:not(.hide-sections) li.page > a { - font-weight: bold; + font-weight: bold; } .toctree-wrapper.space-pages li.page { - margin-top: 1em; + margin-top: 1em; } - .toctree-wrapper.hide-sections li:not(.page) { - list-style: none; - margin-left: -2.5rem; + list-style: none; + margin-left: -2.5rem; } .toctree-wrapper.hide-sections li:not(.page) > a { display: none; } -#hide-page-sections { float: right; opacity: 0.88; }a.headerlink -{ - color: #327438; - font-size: 0.8em; - margin: 0 0 0 1px; - padding: 0 5px 0 4px; - text-decoration: none; - border: 1px solid transparent; - border-width: 1px 0; - - - -moz-border-radius: 0.35em; - -webkit-border-radius: 0.35em; - -o-border-radius: 0.35em; - -ms-border-radius: 0.35em; - border-radius: 0.35em; - +#hide-page-sections { float: right; opacity: 0.88; } +a.headerlink +{ + color: #003469; + font-size: 0.8em; + margin: 0 0 0 1px; + padding: 0 5px 0 4px; + text-decoration: none; + border: 1px solid transparent; + border-width: 1px 0; + -moz-border-radius: 0.35em; + -webkit-border-radius: 0.35em; + -o-border-radius: 0.35em; + -ms-border-radius: 0.35em; + border-radius: 0.35em; } div.body a.headerlink:hover { - background-color: #fff9e4; - border-color: #F8D186; - color: #d39110; - text-decoration: none; - + background-color: #fff9e4; + border-color: #F8D186; + color: #d39110; + text-decoration: none; } a.headerlink:hover:active { - - - -moz-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; - -ms-box-shadow: none; - box-shadow: none; - - - + -moz-box-shadow: none; + -webkit-box-shadow: none; + -o-box-shadow: none; + -ms-box-shadow: none; + box-shadow: none; } + .html-toggle-button { - position: relative; - cursor: pointer; + position: relative; + cursor: pointer; } .html-toggle-button:hover:after, -.section.emphasize-children > .section > h3.html-toggle-button:hover:after +.section.emphasize-children > .section > h3.html-toggle-button:hover:after { - background: #fff9e4; - - - border-color: #F8D186; - - - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -o-border-radius: 4px; - -ms-border-radius: 4px; - border-radius: 4px; - - - - - - -moz-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - -webkit-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - -o-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - -ms-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); - + background: #fff9e4; + border-color: #F8D186; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -o-border-radius: 4px; + -ms-border-radius: 4px; + border-radius: 4px; - - color: #d39110; + -moz-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -webkit-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -o-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -ms-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + color: #d39110; } - .html-toggle-button:after { - position: relative; - top: -0.15em; - margin: 0; - padding: 0.15em 0.3em; - text-shadow: none; - font-size: 65%; - font-style: italic; - font-weight: bold; - border: 1px solid transparent; + position: relative; + top: -0.15em; + margin: 0; + padding: 0.15em 0.3em; + text-shadow: none; + font-size: 65%; + font-style: italic; + font-weight: bold; + border: 1px solid transparent; } - - .html-toggle.collapsed > .html-toggle-button:after { content: "[+ show section]"; } .html-toggle.expanded > .html-toggle-button:after { content: "[- hide section]"; } @@ -1330,18 +444,11 @@ a.headerlink:hover:active .section.emphasize-children > .section > h3.html-toggle-button:active:after { - position: relative; - top: calc(-0.15em + 1px); - left: 1px; + position: relative; + top: calc(-0.15em + 1px); + left: 1px; } - - - - - - - .clear, .clear-both { clear: both; } .clear-left { clear: left; } @@ -1350,26 +457,14 @@ a.headerlink:hover:active .clear-none { clear: none; } - div.body .clear-none > h3 { clear: none; } +div.body .clear-none > h3 { clear: none; } .hidden { display: none; }div.body p { - text-align: justify; - - - - - - - margin: 1.5em - 0 - 1.5em - 0; - + text-align: justify; + margin: 1.5em 0 1.5em 0; } - - div.body li, div.body dd { @@ -1377,26 +472,28 @@ div.body dd } div.body hr { - margin: 0 10px; - background: none; - border: 1px dashed rgba(0,0,0,.15); - border-width: 1px 0 0 0; + margin: 0 10px; + background: none; + border: 1px dashed rgba(0,0,0,.15); + border-width: 1px 0 0 0; } .strike { - text-decoration: line-through; -}a.footnote-reference + text-decoration: line-through; +} + +a.footnote-reference { - font-size: 70%; - position: relative; - top: -.75em; + font-size: 70%; + position: relative; + top: -.75em; } -table.docutils.footnote { margin: 1em 0 0 1em; }dl { margin-bottom: 1.5em; } +dl { margin-bottom: 1.5em; } li > dl:only-child { margin-bottom: 0; } -dd { margin-right: 10px; } +dd { margin-right: 10px; } dd ol { margin-bottom: 10px; } @@ -1414,41 +511,33 @@ dd ul { margin-bottom: 1.5em; } li > p ~ ul.simple { margin-bottom: 1.5em; } - - a { - color: #006906; - text-decoration: none; + color: #003469; + text-decoration: none; } a:visited { - - text-decoration: none; + text-decoration: none; } a:hover { - color: #d39110; - background: #fff9e4; - text-decoration: underline; + color: #d39110; + background: #fff9e4; + text-decoration: underline; } a:hover:active { - left: 1px; - top: 1px; - - - -moz-box-shadow: 0; - -webkit-box-shadow: 0; - -o-box-shadow: 0; - -ms-box-shadow: 0; - box-shadow: 0; - - - + left: 1px; + top: 1px; + -moz-box-shadow: 0; + -webkit-box-shadow: 0; + -o-box-shadow: 0; + -ms-box-shadow: 0; + box-shadow: 0; } a.biglink @@ -1456,929 +545,321 @@ a.biglink font-size: 130%; } - - a.external:before - { - content: "\21D7"; - padding-right: .1em; - } - - a.external.issue:before - { - content: "\21D7"; - } - - a.external[href^="mailto:"]:before - { - content: ""; - } - - em.issue:before - { - content: "\21D7"; - padding-right: .1em; - } -dt:target, -.footnote:target, -.highlighted +a.external:before { - padding: 4px; - margin: -4px; - background-color: #fbe54e; - - - -moz-border-radius: 10px; - -webkit-border-radius: 10px; - -o-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; - - - + content: "\21D7"; + padding-right: .1em; } -table.fullwidth { width: 100%; } - -table.centered { margin-left: auto; margin-right: auto; } - -table.docutils.plain { border: none; } -table.docutils.plain tr.row-odd > * { background: none; } - - -table.docutils.html-plain-table tr.row-odd > * { background: none; } - - -table.docutils.align-right { margin-left: auto; } - table.docutils tbody - { - - vertical-align: top; - } - - - - table.docutils th p:first-child, - table.docutils td p:first-child - { - margin-top: 0; - } - - table.docutils th p:last-child, - table.docutils td p:last-child - { - margin-bottom: 0; - } - - -table.docutils th { - border: 0 solid transparent; - padding: .4em; - font-family: Arial, sans-serif; - background: rgba(0,0,0,.15); -} - -table.docutils th.head:not(.stub) { - border-bottom: 1px solid rgba(0,0,0,.15); +a.external.issue:before +{ + content: "\21D7"; } -table.docutils th.stub + td +a.external[href^="mailto:"]:before { - border-left: 1px solid rgba(0,0,0,.15); + content: ""; } -table.docutils td { - padding: .4em; - border: 0 solid rgba(0,0,0,.15); +em.issue:before +{ + content: "\21D7"; + padding-right: .1em; } -table.docutils tr.row-odd td { background: rgba(0,0,0,.06); } - -h2 + table.docutils { margin-top: 1em; } -table > caption { margin: 1em 0 .5em; font-style: italic; } - - - -table.docutils th + .single-left-divider, -table.docutils th + .double-left-divider { border-left-width: 0; } - - - - - - - dl.field-list > dd > p:first-child, - dl.field-list > dd > p:first-child:empty + ul.simple li > p:first-child, - dl.field-list > dd > ul:first-child.simple li > p:first-child - { margin-top: 0; } - - - dl.field-list > dd > p:first-child:empty { display: none; } +dt:target, +.footnote:target, +.highlighted +{ + padding: 4px; + margin: -4px; + background-color: #fbe54e; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -o-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} +dl.field-list > dd > p:first-child, +dl.field-list > dd > p:first-child:empty + ul.simple li > p:first-child, +dl.field-list > dd > ul:first-child.simple li > p:first-child +{ margin-top: 0; } +dl.field-list > dd > p:first-child:empty { display: none; } div.admonition, p.deprecated { - background: #D9E4F1; - - - - - - - font-size: 0.88em; - line-height: 1.7045454545454546em; - margin: 0.705em - 0 - 0.705em - 0; - - padding: .5em 1em; - border: 1px solid rgba(0,0,0,.05); - border-width: 1px 0; - - - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - -o-border-radius: 5px; - -ms-border-radius: 5px; - border-radius: 5px; - + background: #E7F0FE; + font-size: 0.88em; + line-height: 1.7045454545454546em; + margin: 0.705em 0 0.705em 0; + padding: .5em 1em; + border: 1px solid rgba(0,0,0,.05); + border-width: 1px 0; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + border-radius: 5px; - - background-position: .6em .5em; - background-size: auto 1.58em; - background-repeat: no-repeat; - - - background-image: url("icon-note.png"); + background-position: .6em .5em; + background-size: auto 1.58em; + background-repeat: no-repeat; + background-image: url("icon-note.png"); } +div.caution, div.important { background-color: #FFF7E0; background-image: url("icon-caution.png"); } +div.warning { background-color: #ffe4e4; background-image: url("icon-warning.png"); } +div.danger, div.admonition.error { background-color: #ffe4e4; background-image: url("icon-danger.png"); } - -div.caution, div.important { background-color: #eeeeee; background-image: url("icon-caution.png"); } -div.warning { background-color: #EBC5A7; background-image: url("icon-warning.png"); } -div.danger, div.admonition.error { background-color: #EBC5A7; background-image: url("icon-danger.png"); } - -div.seealso { background-color: #eeeeee; background-image: url("icon-seealso.png"); } -div.admonition-todo { background-color: #eeeeee; background-image: url("icon-todo.png"); } -p.deprecated { background-color: #ffebab; background-image: url("icon-deprecated.png"); } +div.seealso { background-color: #FFF7E0; background-image: url("icon-seealso.png"); } +div.admonition-todo { background-color: #FFF7E0; background-image: url("icon-todo.png"); } +p.deprecated { background-color: #fbece0; background-image: url("icon-deprecated.png"); } div.admonition p, div.admonition pre, div.admonition ul, div.admonition ol { - - - - - - - line-height: 1.7045454545454546em; - margin: 0.0em - 0 - 0.0em - 0; - + line-height: 1.7045454545454546em; + margin: 0.0em 0 0.0em 0; } - -h1 ~ div.admonition { margin-left: 1.5em; margin-right: 1.5em; }div.admonition.float-right, -div.admonition.floater +h1 ~ div.admonition { margin-left: 1.5em; margin-right: 1.5em; } +div.admonition.float-right, +div.admonition.floater { - float: right; - max-width: 40%; - margin: 0 0 1.5em 1.5em; + float: right; + max-width: 40%; + margin: 0 0 1.5em 1.5em; } .admonition.float-left { - float: left; - max-width: 50%; - margin: 0 1.5em 1.5em 0; + float: left; + max-width: 50%; + margin: 0 1.5em 1.5em 0; } .admonition.float-center { - clear: both; - max-width: 65%; - margin: 0 auto 1.5em; + clear: both; + max-width: 65%; + margin: 0 auto 1.5em; } - - - - - - - - p.admonition-title:first-child { - - margin: -.5em -1em .5em; - padding: .5em .5em .5em 2.65em; - background: rgba(0,0,0,.05); - - - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - -o-border-radius: 3px 3px 0 0; - -ms-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - + margin: -.5em -1em .5em; + padding: .5em .5em .5em 2.65em; + background: rgba(0,0,0,.05); - - + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + -o-border-radius: 3px 3px 0 0; + -ms-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; } - - p.admonition-title:first-child { margin-top: -.5em !important; } - +p.admonition-title:first-child { margin-top: -.5em !important; } div.admonition.inline-title p.admonition-title { - display: inline; - margin: 0; - padding: 0 .25em 0 1.5em; + display: inline; + margin: 0; + padding: 0 .25em 0 1.5em; } div.admonition.inline-title p.admonition-title:after { content: ":"; } div.admonition.inline-title p.admonition-title + p { display: inline; } div.admonition.inline-title p.admonition-title + ul { margin-top: 0; } - div.admonition.inline-title p.admonition-title { background: none; } - - +div.admonition.inline-title p.admonition-title { background: none; } div.admonition.without-title p.admonition-title { - display: none; + display: none; } div.admonition.without-title { - padding-left: 2.65em; -}div#todos p.admonition-title + padding-left: 2.65em; +} + +div#todos p.admonition-title { - font-weight: normal; - color: #AAA; - font-size: 70%; + font-weight: normal; + color: #AAA; + font-size: 70%; } div#todos div.admonition-todo + p { - font-size: 70%; - text-align: right; - margin-top: -.5em; - margin-bottom: 1.5em; - color: #AAA; + font-size: 70%; + text-align: right; + margin-top: -.5em; + margin-bottom: 1.5em; + color: #AAA; } div#todos div.admonition-todo + p a { - font-size: 130%; + font-size: 130%; } - div.deprecated, div.versionchanged, div.versionadded { - - - - - - - font-size: 0.88em; - line-height: 1.7045454545454546em; - margin: 1.705em - 0 - 1.705em - 0; + font-size: 0.88em; + line-height: 1.7045454545454546em; + margin: 1.705em 0 1.705em 0; - filter: progid:DXImageTransform.Microsoft.Alpha(Opacity= - 60); - opacity: 0.6; -; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60); + opacity: 0.6; } - span.versionmodified { - font-weight: bold; -} - - - -div.highlight -{ - background: none; - margin: 1.5em 0; -} - -div.highlight pre, -td.linenos pre -{ - padding: 10px; - - font-family: "Roboto Mono", monospace; - font-size: 85%; - line-height: 1.5em; -} - -div.highlight pre -{ - background-color: #e8ffe6; - - border: 1px solid #129100; - border-width: 1px 0; - border-style: solid dotted dotted solid; - - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -o-border-radius: 3px; - -ms-border-radius: 3px; - border-radius: 3px; - - - - color: #111111; -} - - -div[class|="highlight"] + div[class|="highlight"] -{ - margin-top: -1.5em; -} - - -p + [class|=highlight] > table.highlighttable -{ - margin-top: -1em; - - margin-bottom: -1em; -} - - -table.highlighttable { display: block; } -table.highlighttable tbody { display: block; } -table.highlighttable tr { display: flex; align-items: flex-start; justify-content: flex-start; } -table.highlighttable td { display: block; padding: 0; } -table.highlighttable td.code { width: 100%; max-width: calc(100% - 1em); } -table.highlighttable div.linenodiv { margin-top: 2.2em; } -table.highlighttable div.linenodiv pre -{ - background: none; - border: 0; - margin: 0; - padding: 0; - padding-right: .5em; -} - - - - - - -code -{ - font-family: "Roboto Mono", monospace; - font-size: 90%; -} - -code.literal -{ - background-color: rgba(0,0,0,.06); - border: 1px solid transparent; - padding: 0px 4px; - margin: 1px; - - - - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -o-border-radius: 4px; - -ms-border-radius: 4px; - border-radius: 4px; - - - -} - -p code.literal { white-space: nowrap; } - -code.samp.literal > em -{ - font-family: "Roboto Mono", monospace; - padding: 0 1px; - filter: progid:DXImageTransform.Microsoft.Alpha(Opacity= - 60); - opacity: 0.6; - -} - -code.samp.literal > em:before { content: "{"; } -code.samp.literal > em:after { content: "}"; } - -h1 code.literal -{ - - font-size: 80%; -} - -h1 code.samp.literal > em -{ - font-weight: normal; -} - -div.sphinxsidebar code.literal, -a.reference code.literal, -div.related a code.literal, -code.literal.xref -{ - background-color: transparent; - border: none; - padding: 0; - margin: 0; -} - -.viewcode-back -{ - font-family: Arial, sans-serif; -} - -div.viewcode-block:target -{ - background-color: #f4debf; - border-top: 1px solid #ac9; - border-bottom: 1px solid #ac9; -} - - -.highlight .copybutton -{ - position: absolute; - right: 0; - top: 0; - - margin: 0; - padding: 0 6px; - - background: transparent; - border: 1px solid transparent; - - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -o-border-radius: 3px; - -ms-border-radius: 3px; - border-radius: 3px; - - - - - font-size: 75%; - color: #777777; - white-space: nowrap; - cursor: pointer; -} - -.highlight .copybutton.active -{ - text-decoration: line-through; - filter: progid:DXImageTransform.Microsoft.Alpha(Opacity= - 80); - opacity: 0.8; - -} - -.highlight:not(:hover) .copybutton:not(.active) -{ - filter: progid:DXImageTransform.Microsoft.Alpha(Opacity= - 70); - opacity: 0.7; - + font-weight: bold; } - - - .desc-section > .section-header { - position: relative; + position: relative; } .desc-section-1 > .section-header { - - - - - - - margin: 0.8em - 0 - 0.8em - 0; - - border-bottom: 1px dotted #75c47c; - color: #75c47c; + border-width: 0; + background-color: transparent; + border-bottom: 1px solid var(---nested-section-color); + color: var(---nested-section-color); + display: inline-block; } .desc-section-2 > .section-header { - color: #75c47c; + border-width: 0; + background-color: transparent; + border-bottom: 1px solid var(---nested-subsection-color); + color: var(---nested-subsection-color); + display: inline-block; } .desc-section > .section-header:before { - - content: attr(data-nested-label); - font-size: 0.75em; - opacity: 0.75; - letter-spacing: 1px; - font-style: italic; -} - - - - - - - - - - - - - - - dl.object > dt, - dl.data > dt, - dl.function > dt, - dl.method > dt, - dl.attribute > dt, - dl.class > dt, - dl.exception > dt, - dl.classmethod > dt, - dl.staticmethod > dt - { - display: inline-block; - - padding: 0.3em 1em 0.3em 0.6em; - - border: rgba(0,0,0,0.1) solid 1px; - border-width: 0 0 0 3px; - - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -o-border-radius: 3px; - -ms-border-radius: 3px; - border-radius: 3px; - - - - } - - - - dl.has-headerlink > dt, - dl.has-headerlink > dt - { - padding-right: 0; - } - - - - dl.object > dt, - dl.data > dt, - dl.attribute > dt - { - background-color: - #ffd5ff; - } - - dl.function > dt, - dl.method > dt, - dl.classmethod > dt, - dl.staticmethod > dt - { - background-color: - #eefbff; - } - - dl.class > dt - { - background-color: - #fff3df; - border-width: 0 0 0 6px; - } - - dl.exception > dt - { - background-color: - #e9ffd0; - } - - - dl.object > dt:before, - dl.data > dt:before, - dl.function > dt:before, - dl.method > dt:before, - dl.attribute > dt:before, - dl.class > dt > .property:first-child, - dl.exception > dt > .property:first-child, - dl.classmethod > dt > .property:first-child, - dl.method[subtype] > dt > .property:first-child, - dl.staticmethod > dt > .property:first-child - { - font-size: 0.8em; - font-weight: bold; - font-style: italic; - letter-spacing: 0.1em; - color: rgba(0,0,0,0.3); - } - - - - - - .desc-section dl.attribute > dt:before - { - content: "attr"; - padding-right: 0.6em; - } - - .desc-section dl.function > dt:before - { - content: "func"; - padding-right: 0.6em; - } - - .desc-section dl.method:not([subtype]) > dt:before - { - content: "method"; - padding-right: 0.6em; - } - - - - - -dl > dt.highlighted -{ - background: #fbe54e; + content: attr(data-nested-label); + font-size: 0.75em; + opacity: 0.75; + letter-spacing: 1px; + font-style: italic; } - -.viewcode-link +dl.object > dt, +dl.data > dt, +dl.function > dt, +dl.method > dt, +dl.attribute > dt, +dl.class > dt, +dl.exception > dt, +dl.classmethod > dt, +dl.staticmethod > dt { - position: absolute; - right: 0; - margin-right: 1.5em; - margin-right: calc(1em + 10px); + display: inline-block; + padding: 0.3em 1em 0.3em 0.6em; + border: rgba(0,0,0,0.1) solid 1px; + border-width: 0 0 0 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; } - - -table.indextable span.category +dl.has-headerlink > dt, +dl.has-headerlink > dt { - font-size: 80%; - font-style: italic; - color: #999999; + padding-right: 0; } -table.indextable a, -table.indextable a:hover span.category +dl.object > dt, +dl.data > dt, +dl.attribute > dt { - color: #006906; + background-color: var(---object-color-bg); + border: var(---object-color-bg2) solid; + border-width: 0 0 0 3px; } -table.indextable span.category span.location +dl.function > dt, +dl.method > dt, +dl.classmethod > dt, +dl.staticmethod > dt { - font-weight: bold; + background-color: var(---function-color-bg); + border: var(---function-color-bg2) solid; + border-width: 0 0 0 3px; } -table.indextable td > dl > dt -{ - margin-bottom: .5em; +dl.class > dt { + background-color: var(---class-color-bg); + border: var(---class-color-bg2) solid; + border-width: 0 0 0 3px; } -table.indextable td > dl > dd > dl -{ - margin-top: -.5em; - margin-bottom: .5em; +dl.exception > dt { + background-color: var(---exception-color-bg); } - - - -@media only screen and (min-device-width: 16in) +dl.object > dt:before, +dl.data > dt:before, +dl.function > dt:before, +dl.method > dt:before, +dl.attribute > dt:before, +dl.class > dt > .property:first-child, +dl.exception > dt > .property:first-child, +dl.classmethod > dt > .property:first-child, +dl.method[subtype] > dt > .property:first-child, +dl.staticmethod > dt > .property:first-child { - - - + font-size: 0.8em; + font-weight: bold; + font-style: italic; + letter-spacing: 0.1em; + color: #rgba(0,0,0,0.3); } - -@media only screen and (min-width: 11.5in) +.desc-section dl.attribute > dt:before { - - - + content: "attr"; + padding-right: 0.6em; } - -@media only screen and (min-width: 700px) +.desc-section dl.function > dt:before { - - - - - - .show-for-small { display: none !important; } + content: "func"; + padding-right: 0.6em; } - -@media only screen and (max-width: 11.5in), - only screen and (max-width: 700px), - only screen and (max-device-width: 700px), - handheld +.desc-section dl.method:not([subtype]) > dt:before { - - - body - { - margin: 0; - } - - - div.relbar-top div.related, - div.relbar-bottom div.related - { - - - -moz-border-radius: 0; - -webkit-border-radius: 0; - -o-border-radius: 0; - -ms-border-radius: 0; - border-radius: 0; - - - - } - - - div.bodywrapper - { - margin: 0 0 0 2.5in; - - } - - - div.sphinxsidebar { width: 2.5in; } - - - .sidebar-toggle-group { width: 2.5in; } - - + content: "method"; + padding-right: 0.6em; } - -@media only screen and (max-width: 700px), - only screen and (max-device-width: 700px), - handheld +dl > dt.highlighted { - - - body { - font-size: 75%; - } - - - - div.related > ul > li.right + li:not(.right) { font-weight: bold; } - div.related > ul > li:not(.right) + li { display: none; } - - - div.bodywrapper - { - margin-left: 0; - } - - - div.document:not(.document-hidden) div.sphinxsidebar, - div.document.document-hidden div.documentwrapper - { - display: none; - } - - div.document.document-hidden div.sphinxsidebar - { - width: 100%; - margin: 0; - border: 0; - border-radius: 0; - } - - - button#sidebar-hide - { - left: auto; - top: 0; - right: 0; - background: #f8f8f8; - border-color: rgba(0,0,0,.15); - } - - - - div.body h2, - div.body p.rubric, - .section.emphasize-children > .section > h3 - { - - padding-top: 0.25em; - padding-bottom: .25em; - - - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -o-border-radius: 3px; - -ms-border-radius: 3px; - border-radius: 3px; - - - - } - - - - - .hide-for-small { display: none; } + background: #fbe54e; } - -@media print +.viewcode-link { - - - div.body { - border: 0; - - - -moz-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; - -ms-box-shadow: none; - box-shadow: none; - - - - } - - - .sidebar-toggle-group { display: none; } - - - - div.body h1, - div.body h2, - div.body p.rubric, - div.body h3, - div.body h4, - div.body h5, - div.body h6 - { - color: #333 !important; - text-shadow: none !important; - border: none !important; - padding: 0; - } - - - - - .html-toggle.expanded > .html-toggle-button:after - { - display: none; - } - - - .html-toggle.collapsed > .html-toggle-button:after - { - content: "[not printed]" !important; - } - - - + position: absolute; + right: 0; + margin-right: 1.5em; + margin-right: calc(1em + 10px); } - - - +@import url("cloud_media.css"); diff --git a/docs/_static/cloud_code.css b/docs/_static/cloud_code.css new file mode 100644 index 00000000..91cc4484 --- /dev/null +++ b/docs/_static/cloud_code.css @@ -0,0 +1,154 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +div.highlight +{ + background: none; + margin: 1.5em 0; +} + +div.highlight pre, +td.linenos pre +{ + padding: 10px; + + font-family: "Roboto Mono", monospace; + font-size: 85%; + line-height: 1.5em; +} + +div.highlight pre +{ + background-color: #FEFFE2; + border: 1px solid #C4CF00; + border-style: solid solid solid solid; + + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + -o-border-radius: 6px; + -ms-border-radius: 6px; + border-radius: 6px; + color: #111111; +} + +div[class|="highlight"] + div[class|="highlight"] +{ + margin-top: -1.5em; +} + +code +{ + font-family: "Roboto Mono", monospace; + font-size: 90%; +} + +code.literal +{ + background-color: rgba(0,0,0,.075); + border: 1px solid rgba(0,0,0,.05); + padding: 0px 4px; + margin: 1px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -o-border-radius: 4px; + -ms-border-radius: 4px; + border-radius: 4px; +} + +p code.literal { white-space: nowrap; } + +code.samp.literal > em +{ + font-family: "Roboto Mono", monospace; + padding: 0 1px; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60); + opacity: 0.6; +} + +code.samp.literal > em:before { content: "{"; } +code.samp.literal > em:after { content: "}"; } + +h1 code.literal +{ + font-size: 80%; +} + +h1 code.samp.literal > em +{ + font-weight: normal; +} + +a.reference code.literal, +div.related a code.literal, +code.literal.xref +{ + background-color: transparent; + border: none; + padding: 0; + margin: 0; +} + +.viewcode-back +{ + font-family: var(---font0), sans-serif; +} + +div.viewcode-block:target +{ + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} + +.highlight .copybutton +{ + position: absolute; + right: 0; + top: 0; + + margin: 0; + padding: 0 6px; + + background: transparent; + border: 1px solid transparent; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; + + font-size: 75%; + color: #777777; + white-space: nowrap; + cursor: pointer; +} + +.highlight .copybutton.active +{ + text-decoration: line-through; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); + opacity: 0.8; +} + +.highlight:not(:hover) .copybutton:not(.active) +{ + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70); + opacity: 0.7; +} + +.viewcode-link +{ + position: absolute; + right: 0; + margin-right: 1.5em; + margin-right: calc(1em + 10px); +} diff --git a/docs/_static/cloud_colors.css b/docs/_static/cloud_colors.css new file mode 100644 index 00000000..b62ab933 --- /dev/null +++ b/docs/_static/cloud_colors.css @@ -0,0 +1,56 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +:root { + + ---font0: "Roboto"; /* Open Sans, Oxygen, Montserrat Alternates */ + ---font1: "Open Sans"; + ---font2: "Roboto Mono"; /* Open Sans, Oxygen, Montserrat Alternates */ + + ---nested-section-color: #F00; + ---nested-subsection-color: #F0F; + + ---object-color-bg: #FEF6F7; + ---object-color-bg2: #FDECEF; + ---function-color-bg: #F0F8FD; + ---function-color-bg2: #D2EAFA; + ---class-color-bg: #F4FDF9; + ---class-color-bg2: #DEF9EE; + ---exception-color-bg: #F0F; + + ---barra-top-bottom-bg: #606060; + ---barra-top-bottom-bg2: #FFF; + ---barra-top-bottom-bg3: #808080; + ---barra-top-bottom-ray: 15px; + ---barra-top-bottom-buttom-color: #000; + ---barra-top-bottom-buttom-ray: 8px; + + ---footer-color: #B0B0B0; + ---footer-color-bg: #FFF; + ---footer-color-text: #000; + + ---pannello-principale-bg: #FFF; + ---pannello-destro-bg: #GGG; + ---pannello-destro-colore-testo: #000; + + ---pannello-sinistro-bg: #F0F0F0; + ---pannello-sinistro-bordo: #000; + ---pannello-sinistro-ray: 8px; + + ---colore-quick-search: #777; + ---colore-toc: #777; + ---tasto-go-bg: #F2F2F2; + ---highlight_color: #F2DE37; + + ---pre-bg: #FCFDF7; + ---pre-border: #EAEFBD; + ---pre-text: color: #111111; +} diff --git a/docs/_static/cloud_media.css b/docs/_static/cloud_media.css new file mode 100644 index 00000000..f1742ce3 --- /dev/null +++ b/docs/_static/cloud_media.css @@ -0,0 +1,117 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +@media only screen and (min-device-width: 16in) +{ +} + +@media only screen and (min-width: 11.5in) +{ +} + +@media only screen and (min-width: 700px) +{ + .show-for-small { display: none !important; } +} + + +@media only screen and (max-width: 11.5in), + only screen and (max-width: 700px), + only screen and (max-device-width: 700px), + handheld +{ + div.relbar-top, div.relbar-bottom + { + padding: 0; + } + + button.sidebar-toggle#sidebar-show + { + left: 0; + border-bottom-left-radius: 0; + } +} + + +@media only screen and (max-width: 700px), + only screen and (max-device-width: 700px), + handheld +{ + body { + font-size: 75%; + } + div.related > ul > li.right + li:not(.right) { font-weight: bold; } + div.related > ul > li:not(.right) + li { display: none; } + + div.bodywrapper + { + margin-left: 0; + } + + div.document.document-hidden div.documentwrapper + { + display: none; + } + + div.body h2, + div.body p.rubric, + .section.emphasize-children > .section > h3 + { + padding-top: 0.25em; + padding-bottom: .25em; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; + } + .hide-for-small { display: none; } +} + +@media print +{ + div.body { + border: 0; + -moz-box-shadow: none; + -webkit-box-shadow: none; + -o-box-shadow: none; + -ms-box-shadow: none; + box-shadow: none; + } + + .sidebar-toggle-group { display: none; } + div.body h1, + div.body h2, + div.body p.rubric, + div.body h3, + div.body h4, + div.body h5, + div.body h6 + { + color: #333 !important; + text-shadow: none !important; + border: none !important; + padding: 0; + } + + .html-toggle.expanded > .html-toggle-button:after + { + display: none; + } + + .html-toggle.collapsed > .html-toggle-button:after + { + content: "[not printed]" !important; + } + +} + +@import url("cloud_media.css"); diff --git a/docs/_static/cloud_sidebar.css b/docs/_static/cloud_sidebar.css new file mode 100644 index 00000000..46cbf58e --- /dev/null +++ b/docs/_static/cloud_sidebar.css @@ -0,0 +1,422 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +div.document.sidebar-hidden div.bodywrapper { + margin-left: 0; + margin-right: 0; +} + +div.sphinxsidebar { + margin-top: 16px; + width: 3in; + + font-size: 90%; /* dimsnione testo barra laterale */ + line-height: 1.25em; + margin-bottom: 16px; + + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -o-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + + background: var(---pannello-sinistro-bg); + border: 1px solid var(---pannello-sinistro-bordo); + + -moz-border-radius: var(---pannello-sinistro-ray); + -webkit-border-radius: var(---pannello-sinistro-ray); + -o-border-radius: var(---pannello-sinistro-ray); + -ms-border-radius: var(---pannello-sinistro-ray); + border-radius: var(---pannello-sinistro-ray); + + -moz-box-shadow: 1px 1px 1px rgba(0,0,0,.05); + -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.05); + -o-box-shadow: 1px 1px 1px rgba(0,0,0,.05); + -ms-box-shadow: 1px 1px 1px rgba(0,0,0,.05); + box-shadow: 1px 1px 1px rgba(0,0,0,.05); +} + +div.document.sidebar-hidden div.sphinxsidebar { display: none; } + +div.sphinxsidebarwrapper { + padding-top: 10px; + padding-bottom: 10px; + padding-right: 10px; + padding-left: 10px; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + padding: 3px; + margin-top: 15px; + margin-bottom: 10px; + margin-right: 0; + margin-left: 0; + font-family: var(---font1), serif; + font-weight: normal; + color: var(---colore-quick-search); /* Colore Quick Search */ +} + +div.sphinxsidebar h3 { font-size: 1.4em; } +div.sphinxsidebar h4 { font-size: 1.3em; } + +div.sphinxsidebar h3 a, +div.sphinxsidebar h4 a { + color: var(---colore-toc); /* colore Table of Contents */ +} + +div.sphinxsidebar p { + color: #777777; +} + +div.sphinxsidebar p.topless { + margin: 10px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + /* margin-right: 0; */ + padding: 0; + color: #777777; +} + +div.sphinxsidebar a { + color: #003469; + border: 1px solid transparent; + border-width: 1px 0; +} + +div.sphinxsidebar a:hover { + color: #d39110; + background: #fff9e4; + border-color: #F8D186; + text-decoration: none; +} + +div.sphinxsidebar ul li a { + overflow: hidden; + white-space: nowrap; +} + +div.sphinxsidebar ul li a:hover { + display: inline-table; + min-width: 98%; + min-width: calc(100% - 5px); +} + +div.sphinxsidebar a:active { + color: #777777; +} + +div.sphinxsidebar p.logo { + display: block; + margin: 10px auto 10px auto; /* centratura logo */ + align: center; + text-align: center; + max-width: 90%; +} + +div.sphinxsidebar p.logo a { + display: inline-block; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} + + +div.sphinxsidebarwrapper > h3:first-child, +div.sphinxsidebarwrapper > h4:first-child, +div.sphinxsidebarwrapper > div:first-child > h3:first-child, +div.sphinxsidebarwrapper > div:first-child > h4:first-child +{ + margin-top: .2em; +} + +div.sphinxsidebar ul, +div.sphinxsidebar ul ul, +div.sphinxprev p.topless, +div.sphinxnext p.topless { + list-style: none; + margin-left: 0; +} + +div.sphinxsidebar ul ul { + margin-left: 1.5em; +} + + +div.sphinxsidebar ul a, +div.sphinxprev a, +div.sphinxnext a { + position: relative; + display: block; + padding: 1px 4px 3px 5px; + margin: 0 5px 0 0; + border: 1px solid transparent; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} + +div.sphinxsidebar ul a:hover, +div.sphinxprev a:hover, +div.sphinxnext a:hover { + background: #fff9e4; + border-color: #F8D186; + color: #d39110; + text-decoration: none; +} + +div.sphinx-toc ul a:not([href^="#"]):hover { + position: relative; + overflow: visible; +} + +div.sphinx-toc ul a:not([href^="#"]):hover:before { + content: "⇒"; + position: absolute; + right: 100%; + font-size: 1.5em; + margin-right: 4px; + opacity: 0.7; +} + +div.sphinxglobaltoc ul a[href="#"] { + font-style: italic; +} + +div.sphinxglobaltoc ul a:not([href*="#"]) { + font-size: 0.95em; + font-style: italic; +} + +div.sphinx-toc li { + position: relative; +} + +div.sphinx-toc li:before { + position: absolute; + left: -0.8em; + color: #d39110; /* colore "▶" */ +} + +div.sphinx-toc li.current.active:not(.focus):before { + content: "▼"; + top: 0.1em; + opacity: 0.5; +} + +div.sphinx-toc li.focus.local:before { + content: "▶"; + opacity: 0.7; +} + +div.sphinx-toc > ul:not(:hover) li.focus.child:beforec { + content: "⇒"; + opacity: 0.5; + font-size: 1.5em; + margin-left: -4px; +} + +div.sphinx-toc li.focus.local > a:not(:hover) { + color: #d39110; /* colore testo a desta "▶" */ +} + +div.sphinx-toc li.toc-toggle > a:after { + content: "[–]"; + padding-left: .25em; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); + opacity: 0.5; +} + +div.sphinx-toc li.toc-toggle.closed > a:after { + content: "[+]"; +} + +div#searchbox { + margin-right: 10px; /* make this match sphinxsidebarwrapper left margin */ +} + +div#searchbox form > div { + display: inline-block; + margin-right: -0.4em; +} + +div.sphinxsidebar input, +h1#search-documentation ~ form input { + border: 1px solid rgba(0,0,0,.15); + font-family: sans-serif; + font-size: 1em; +} + +div#searchbox input[type="submit"], +h1#search-documentation ~ form > input[type="submit"] { + background: var(---tasto-go-bg); + + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + -o-border-radius: 0 5px 5px 0; + -ms-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} + +div#searchbox input[type="submit"]:hover, +h1#search-documentation ~ form input[type="submit"]:hover, +button.sidebar-toggle#sidebar-hide:hover, +button.sidebar-toggle#sidebar-show:hover, +.highlight .copybutton:hover +{ + background: #fff9e4; + color: #d39110; + border-color: #F8D186; +} + +h1#search-documentation ~ form input[type="text"]:focus, +div.sphinxsidebar input[type="text"]:focus { + border-color: #F8D186; +} + +div.sphinxsidebar button:hover:not(:active), +div.sphinxsidebar input[type="submit"]:hover:not(:active), +h1#search-documentation ~ form input[type="submit"]:hover, +button.sidebar-toggle:hover:not(:active) +{ + -moz-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -webkit-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -o-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -ms-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); +} + +button.sidebar-toggle::-moz-focus-inner { + border: 0; +} + +div.sphinxsidebar .searchtip { + color: #999999; +} + +#searchbox .highlight-link a[href$="hideSearchWords()"] { + display: block; + padding: 0 1em; + font-size: 80%; + text-align: right; +} + +#searchbox .highlight-link a[href$="hideSearchWords()"]:before { + content: "\00D7"; + font-weight: bold; + padding-right: 0.25em; +} + +.sidebar-toggle-group { + position: absolute; + width: 3in; + top: 0; + left: 0; + z-index: 1; +} + +.sidebar-toggle-group.no-js { display: none; } + +div.document.sidebar-hidden .sidebar-toggle-group { + width: auto; +} + +div.document.document-hidden .sidebar-toggle-group { + width: 100%; +} + +button.sidebar-toggle { + margin: 0; + padding: 6px 12px; + + color: #777777; + font-size: 1em; + white-space: nowrap; +} + +button#sidebar-hide { + position: absolute; + top: 16px; + right: 0; + background: transparent; + border: 1px solid rgba(0,0,0,.05); + border-bottom-left-radius: 0.7em; +} + +button#sidebar-show { + position: absolute; + top: 0; + left: 10px; + + background: #F2F2F2; + border: 1px solid rgba(0,0,0,.15); + + border-bottom-right-radius: 0.7em; + border-bottom-left-radius: 0.7em; +} + +#table-of-contents > h1, +h1#search-documentation +{ + padding: 6px 10px; + background-color: #84A6C7; + border: 1px solid rgba(0,0,0,.125); + border-width: 0 0 0 6px; + color: #FFF; /* colore testo sezioni */ + /* text-shadow: 1px 1px rgba(0,0,0,.125); */ + + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + border-radius: 5px; +} + +#table-of-contents > h1, +h1#search-documentation +{ + margin: 0.8em 1px 0.8em 1px; +} + +#table-of-contents > h1, +h1#search-documentation { + margin-top: 0; +} + +.toctree-wrapper.highlight-pages:not(.hide-sections) li.page > a { + font-weight: bold; +} + +.toctree-wrapper.space-pages li.page { + margin-top: 1em; +} + +.toctree-wrapper.hide-sections li:not(.page) { + list-style: none; + margin-left: -2.5rem; +} +.toctree-wrapper.hide-sections li:not(.page) > a { + display: none; +} + +div.sphinxsidebar code.literal { + background-color: transparent; + border: none; + padding: 0; + margin: 0; +} diff --git a/docs/_static/cloud_tables.css b/docs/_static/cloud_tables.css new file mode 100644 index 00000000..49c198da --- /dev/null +++ b/docs/_static/cloud_tables.css @@ -0,0 +1,173 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +table.docutils.footnote { margin: 1em 0 0 1em; } + +table.fullwidth { width: 100%; } + +table.centered { margin-left: auto; margin-right: auto; } + +table.docutils.plain { border: none; } +table.docutils.plain tr.row-odd > * { background: none; } + + +table.docutils.html-plain-table tr.row-odd > * { background: none; } + + +table.docutils.align-right { margin-left: auto; } + +table.docutils tbody +{ + vertical-align: top; +} + +table.docutils th p:first-child, +table.docutils td p:first-child +{ + margin-top: 0; +} + +table.docutils th p:last-child, +table.docutils td p:last-child +{ + margin-bottom: 0; +} + +table.docutils th { + border: 0 solid transparent; + padding: .4em; + font-family: var(---font1); + background: rgba(0,0,0,.15); +} + +table.docutils th.head:not(.stub) { + border-bottom: 1px solid rgba(0,0,0,.15); +} + +table.docutils th.stub + td +{ + border-left: 1px solid rgba(0,0,0,.15); +} + +table.docutils td { + padding: .4em; + border: 0 solid rgba(0,0,0,.15); +} +table.docutils tr.row-odd td { background: rgba(0,0,0,.06); } + +h2 + table.docutils { margin-top: 1em; } +table > caption { margin: 1em 0 .5em; font-style: italic; } + +table.docutils th + .single-left-divider, +table.docutils th + .double-left-divider { border-left-width: 0; } + +p + [class|=highlight] > table.highlighttable +{ + margin-top: -1em; + + margin-bottom: -1em; +} + +table.highlighttable { display: block; } +table.highlighttable tbody { display: block; } +table.highlighttable tr { display: flex; align-items: flex-start; justify-content: flex-start; } +table.highlighttable td { display: block; padding: 0; } +table.highlighttable td.code { width: 100%; max-width: calc(100% - 1em); } +table.highlighttable div.linenodiv { margin-top: 2.2em; } +table.highlighttable div.linenodiv pre +{ + background: none; + border: 0; + margin: 0; + padding: 0; + padding-right: .5em; +} + +table.indextable span.category +{ + font-size: 80%; + font-style: italic; + color: #84ADBE; +} + +table.indextable a, +table.indextable a:hover span.category +{ + color: #003469; +} + +table.indextable span.category span.location +{ + font-weight: bold; +} + +table.indextable td > dl > dt +{ + margin-bottom: .5em; +} + +table.indextable td > dl > dd > dl +{ + margin-top: -.5em; + margin-bottom: .5em; +} + +p + [class|=highlight] > table.highlighttable +{ + margin-top: -1em; + + margin-bottom: -1em; +} + +table.highlighttable { display: block; } +table.highlighttable tbody { display: block; } +table.highlighttable tr { display: flex; align-items: flex-start; justify-content: flex-start; } +table.highlighttable td { display: block; padding: 0; } +table.highlighttable td.code { width: 100%; max-width: calc(100% - 1em); } +table.highlighttable div.linenodiv { margin-top: 2.2em; } +table.highlighttable div.linenodiv pre +{ + background: none; + border: 0; + margin: 0; + padding: 0; + padding-right: .5em; +} + + +table.indextable span.category +{ + font-size: 80%; + font-style: italic; + color: #84ADBE; +} + +table.indextable a, +table.indextable a:hover span.category +{ + color: #003469; +} + +table.indextable span.category span.location +{ + font-weight: bold; +} + +table.indextable td > dl > dt +{ + margin-bottom: .5em; +} + +table.indextable td > dl > dd > dl +{ + margin-top: -.5em; + margin-bottom: .5em; +} diff --git a/docs/_static/collapsible-lists/LICENSE.md b/docs/_static/collapsible-lists/LICENSE.md new file mode 100644 index 00000000..ef81a645 --- /dev/null +++ b/docs/_static/collapsible-lists/LICENSE.md @@ -0,0 +1,7 @@ +This code is the fruit of Kate Morley's labor, taken from here: + +- http://code.iamkate.com/javascript/collapsible-lists/ + +She includes a generous CC0 1.0 license for all materials on her site: + +- http://code.iamkate.com/ diff --git a/docs/_static/collapsible-lists/css/button-closed.png b/docs/_static/collapsible-lists/css/button-closed.png new file mode 100644 index 00000000..417eb2fc Binary files /dev/null and b/docs/_static/collapsible-lists/css/button-closed.png differ diff --git a/docs/_static/collapsible-lists/css/button-open.png b/docs/_static/collapsible-lists/css/button-open.png new file mode 100644 index 00000000..ac4a6ef3 Binary files /dev/null and b/docs/_static/collapsible-lists/css/button-open.png differ diff --git a/docs/_static/collapsible-lists/css/button.png b/docs/_static/collapsible-lists/css/button.png new file mode 100644 index 00000000..631d734d Binary files /dev/null and b/docs/_static/collapsible-lists/css/button.png differ diff --git a/docs/_static/collapsible-lists/css/list-item-contents.png b/docs/_static/collapsible-lists/css/list-item-contents.png new file mode 100644 index 00000000..bc082929 Binary files /dev/null and b/docs/_static/collapsible-lists/css/list-item-contents.png differ diff --git a/docs/_static/collapsible-lists/css/list-item-last-open.png b/docs/_static/collapsible-lists/css/list-item-last-open.png new file mode 100644 index 00000000..cf4cf9bd Binary files /dev/null and b/docs/_static/collapsible-lists/css/list-item-last-open.png differ diff --git a/docs/_static/collapsible-lists/css/list-item-last.png b/docs/_static/collapsible-lists/css/list-item-last.png new file mode 100644 index 00000000..1eb1c64a Binary files /dev/null and b/docs/_static/collapsible-lists/css/list-item-last.png differ diff --git a/docs/_static/collapsible-lists/css/list-item-open.png b/docs/_static/collapsible-lists/css/list-item-open.png new file mode 100644 index 00000000..0889c801 Binary files /dev/null and b/docs/_static/collapsible-lists/css/list-item-open.png differ diff --git a/docs/_static/collapsible-lists/css/list-item-root.png b/docs/_static/collapsible-lists/css/list-item-root.png new file mode 100644 index 00000000..87441710 Binary files /dev/null and b/docs/_static/collapsible-lists/css/list-item-root.png differ diff --git a/docs/_static/collapsible-lists/css/list-item.png b/docs/_static/collapsible-lists/css/list-item.png new file mode 100644 index 00000000..81934f9b Binary files /dev/null and b/docs/_static/collapsible-lists/css/list-item.png differ diff --git a/docs/_static/collapsible-lists/css/tree_view.css b/docs/_static/collapsible-lists/css/tree_view.css new file mode 100644 index 00000000..fa21ac4e --- /dev/null +++ b/docs/_static/collapsible-lists/css/tree_view.css @@ -0,0 +1,61 @@ +/* Source taken directly from: + * view-source:http://code.iamkate.com/javascript/collapsible-lists/ + * + * Kate Morley's license for this code is CC0: + * Created by [Kate Morley](http://iamkate.com/). Except where explicitly + * stated otherwise, all content is released under the terms of the + * [CC0 1.0 Universal legal code](http://creativecommons.org/publicdomain/zero/1.0/legalcode). + */ +.treeView{ + -moz-user-select:none; + position:relative; +} + +.treeView ul{ + margin:0 0 0 -1.5em ! important; + padding:0 0 0 1.5em ! important; +} + +.treeView ul ul{ + background:url('list-item-contents.png') repeat-y left ! important; +} + +.treeView li.lastChild > ul{ + background-image:none ! important; +} + +.treeView li{ + margin:0 ! important; + padding:0 ! important; + background:url('list-item-root.png') no-repeat top left ! important; + list-style-position:inside ! important; + list-style-image:url('button.png') ! important; + cursor:auto; +} + +.treeView li.collapsibleListOpen{ + list-style-image:url('button-open.png') ! important; + cursor:pointer; +} + +.treeView li.collapsibleListClosed{ + list-style-image:url('button-closed.png') ! important; + cursor:pointer; +} + +.treeView li li{ + background-image:url('list-item.png') ! important; + padding-left:1.5em ! important; +} + +.treeView li.lastChild{ + background-image:url('list-item-last.png') ! important; +} + +.treeView li.collapsibleListOpen{ + background-image:url('list-item-open.png') ! important; +} + +.treeView li.collapsibleListOpen.lastChild{ + background-image:url('list-item-last-open.png') ! important; +} diff --git a/docs/_static/collapsible-lists/js/CollapsibleLists.compressed.js b/docs/_static/collapsible-lists/js/CollapsibleLists.compressed.js new file mode 100644 index 00000000..429406cf --- /dev/null +++ b/docs/_static/collapsible-lists/js/CollapsibleLists.compressed.js @@ -0,0 +1,83 @@ +/* + +CollapsibleLists.js + +An object allowing lists to dynamically expand and collapse + +Created by Kate Morley - http://code.iamkate.com/ - and released under +the terms of the CC0 1.0 Universal legal code: + +http://creativecommons.org/publicdomain/zero/1.0/legalcode + +*/ + +var CollapsibleLists=new function(){ +this.apply=function(_1){ +var _2=document.getElementsByTagName("ul"); +for(var _3=0;_3<_2.length;_3++){ +if(_2[_3].className.match(/(^| )collapsibleList( |$)/)){ +this.applyTo(_2[_3],true); +if(!_1){ +var _4=_2[_3].getElementsByTagName("ul"); +for(var _5=0;_5<_4.length;_5++){ +_4[_5].className+=" collapsibleList"; +} +} +} +} +}; +this.applyTo=function(_6,_7){ +var _8=_6.getElementsByTagName("li"); +for(var _9=0;_9<_8.length;_9++){ +if(!_7||_6==_8[_9].parentNode){ +if(_8[_9].addEventListener){ +_8[_9].addEventListener("mousedown",function(e){ +e.preventDefault(); +},false); +}else{ +_8[_9].attachEvent("onselectstart",function(){ +event.returnValue=false; +}); +} +if(_8[_9].addEventListener){ +_8[_9].addEventListener("click",_a(_8[_9]),false); +}else{ +_8[_9].attachEvent("onclick",_a(_8[_9])); +} +_b(_8[_9]); +} +} +}; +function _a(_c){ +return function(e){ +if(!e){ +e=window.event; +} +var _d=(e.target?e.target:e.srcElement); +while(_d.nodeName!="LI"){ +_d=_d.parentNode; +} +if(_d==_c){ +_b(_c); +} +}; +}; +function _b(_e){ +var _f=_e.className.match(/(^| )collapsibleListClosed( |$)/); +var uls=_e.getElementsByTagName("ul"); +for(var _10=0;_100){ +_e.className+=" collapsibleList"+(_f?"Open":"Closed"); +} +}; +}(); + diff --git a/docs/_static/collapsible-lists/js/apply-collapsible-lists.js b/docs/_static/collapsible-lists/js/apply-collapsible-lists.js new file mode 100644 index 00000000..e848bb98 --- /dev/null +++ b/docs/_static/collapsible-lists/js/apply-collapsible-lists.js @@ -0,0 +1,3 @@ +$(document).ready(function() { + CollapsibleLists.apply(); +}); diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index 2fa8c97f..b81a3a72 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -6,7 +6,7 @@ var DOCUMENTATION_OPTIONS = { BUILDER: 'html', FILE_SUFFIX: '.html', LINK_SUFFIX: '.html', - HAS_SOURCE: true, + HAS_SOURCE: false, SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false }; \ No newline at end of file diff --git a/docs/api-c/class_view_hierarchy.html b/docs/api-c/class_view_hierarchy.html index 4ee1d2ba..ef47bda7 100644 --- a/docs/api-c/class_view_hierarchy.html +++ b/docs/api-c/class_view_hierarchy.html @@ -7,16 +7,26 @@ - Class Hierarchy — Splines documentation + Class Hierarchy — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -65,14 +75,15 @@

    Navigation

    Class Hierarchy

    -
    - +
      +
    • +
        + +
      +
    • + +
    +
    @@ -86,13 +97,6 @@

    Class Hierarchy

    -
    -

    This Page

    - -
    + @@ -135,7 +148,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -144,7 +157,7 @@

    Navigation

    diff --git a/docs/api-c/define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.html b/docs/api-c/define_a00017_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.html similarity index 63% rename from docs/api-c/define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.html rename to docs/api-c/define_a00017_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.html index dc80a381..b6a36843 100644 --- a/docs/api-c/define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.html +++ b/docs/api-c/define_a00017_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.html @@ -7,16 +7,26 @@ - Define SPLINES_C_INTERFACE_H — Splines documentation + Define SPLINES_C_INTERFACE_H — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Define SPLINES_C_INTERFACE_H +

    Define SPLINES_C_INTERFACE_H

    Define Documentation

    -SPLINES_C_INTERFACE_H
    +SPLINES_C_INTERFACE_H
    @@ -100,33 +110,7 @@

    Define Documentation -
    -

    Previous page

    -

    ← Function SPLINE_select

    -
    -
    -

    Next page

    -

    → MATLAB API

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-c/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.html b/docs/api-c/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.html deleted file mode 100644 index bda5b9df..00000000 --- a/docs/api-c/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - Directory src — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Directory src -

    -

    Directory path: /Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src

    - -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.html b/docs/api-c/file_SplinesCinterface.cc.html similarity index 59% rename from docs/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.html rename to docs/api-c/file_SplinesCinterface.cc.html index d18b6641..5290d77d 100644 --- a/docs/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.html +++ b/docs/api-c/file_SplinesCinterface.cc.html @@ -7,16 +7,26 @@ - File SplinesCinterface.cc — Splines documentation + File SplinesCinterface.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,32 +73,28 @@

    Navigation

    -

    File SplinesCinterface.cc +

    File SplinesCinterface.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesCinterface.cc) +

    Detailed Description

    -
    -
    | This file contains the sources for the C interface to Splines -
    -
    +

    This file contains the sources for the C interface to Splines

    @@ -102,24 +108,7 @@

    Detailed Description -
    -

    This Page

    - -
    +

    +

    @@ -162,7 +160,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -171,7 +169,7 @@

    Navigation

    diff --git a/docs/api-c/file_SplinesCinterface.h.html b/docs/api-c/file_SplinesCinterface.h.html new file mode 100644 index 00000000..a62c3571 --- /dev/null +++ b/docs/api-c/file_SplinesCinterface.h.html @@ -0,0 +1,201 @@ + + + + + + + + + + File SplinesCinterface.h — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.html b/docs/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.html deleted file mode 100644 index ac8e85d0..00000000 --- a/docs/api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - File SplinesCinterface.h — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    - - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-c/file_view_hierarchy.html b/docs/api-c/file_view_hierarchy.html index 80e2b787..f81502ab 100644 --- a/docs/api-c/file_view_hierarchy.html +++ b/docs/api-c/file_view_hierarchy.html @@ -7,16 +7,26 @@ - File Hierarchy — Splines documentation + File Hierarchy — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -65,14 +75,18 @@

    Navigation

    File Hierarchy

    -
    - + +
    @@ -86,13 +100,6 @@

    File Hierarchy

    -
    -

    This Page

    - -
    + @@ -135,7 +151,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -144,7 +160,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19.html b/docs/api-c/function_a00017_1a42401ba59200b4447ddf50065bc54e19.html similarity index 62% rename from docs/api-c/function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19.html rename to docs/api-c/function_a00017_1a42401ba59200b4447ddf50065bc54e19.html index 8e1c0d8a..bac234c7 100644 --- a/docs/api-c/function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19.html +++ b/docs/api-c/function_a00017_1a42401ba59200b4447ddf50065bc54e19.html @@ -7,16 +7,26 @@ - Function SPLINE_push — Splines documentation + Function SPLINE_push — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_push +

    Function SPLINE_push

    Function Documentation

    -int SPLINE_push(double x, double y)
    +int SPLINE_push(double x, double y)

    Push (x,y) interpolation point to a spline bool

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_print

    -
    -
    -

    Next page

    -

    → Function SPLINE_select

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660.html b/docs/api-c/function_a00017_1a4902f807d78a555e8439bb87a48e3660.html similarity index 59% rename from docs/api-c/function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660.html rename to docs/api-c/function_a00017_1a4902f807d78a555e8439bb87a48e3660.html index d826a58d..62a804d1 100644 --- a/docs/api-c/function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660.html +++ b/docs/api-c/function_a00017_1a4902f807d78a555e8439bb87a48e3660.html @@ -7,16 +7,26 @@ - Function SPLINE_build2 — Splines documentation + Function SPLINE_build2 — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_build2 +

    Function SPLINE_build2

    Function Documentation

    -int SPLINE_build2(double const *x, double const *y, int n)
    +int SPLINE_build2(double const *x, double const *y, int n)

    Build a Spline with the points passed as arguments

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_build

    -
    -
    -

    Next page

    -

    → Function SPLINE_delete

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0.html b/docs/api-c/function_a00017_1a562f6cae383a972ff70c7b987c17cce0.html similarity index 64% rename from docs/api-c/function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0.html rename to docs/api-c/function_a00017_1a562f6cae383a972ff70c7b987c17cce0.html index f5521f1b..c0bc9ec6 100644 --- a/docs/api-c/function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0.html +++ b/docs/api-c/function_a00017_1a562f6cae383a972ff70c7b987c17cce0.html @@ -7,16 +7,26 @@ - Function SPLINE_build — Splines documentation + Function SPLINE_build — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_build +

    Function SPLINE_build

    Function Documentation

    -int SPLINE_build()
    +int SPLINE_build()

    Build a Spline with the points previously inserted

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← C API

    -
    -
    -

    Next page

    -

    → Function SPLINE_build2

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27.html b/docs/api-c/function_a00017_1a5781fa56546770ce18340a2b63b57b27.html similarity index 62% rename from docs/api-c/function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27.html rename to docs/api-c/function_a00017_1a5781fa56546770ce18340a2b63b57b27.html index 791b7eda..0c744075 100644 --- a/docs/api-c/function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27.html +++ b/docs/api-c/function_a00017_1a5781fa56546770ce18340a2b63b57b27.html @@ -7,16 +7,26 @@ - Function SPLINE_select — Splines documentation + Function SPLINE_select — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_select +

    Function SPLINE_select

    Function Documentation

    -int SPLINE_select(char const *id)
    +int SPLINE_select(char const *id)

    Select a Spline object id

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_push

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390.html b/docs/api-c/function_a00017_1a5eb493ea98ed5f24685c240c5bcfb390.html similarity index 62% rename from docs/api-c/function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390.html rename to docs/api-c/function_a00017_1a5eb493ea98ed5f24685c240c5bcfb390.html index 304a8e20..f5dbc4d8 100644 --- a/docs/api-c/function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390.html +++ b/docs/api-c/function_a00017_1a5eb493ea98ed5f24685c240c5bcfb390.html @@ -7,16 +7,26 @@ - Function SPLINE_eval_D — Splines documentation + Function SPLINE_eval_D — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_eval_D +

    Function SPLINE_eval_D

    Function Documentation

    -double SPLINE_eval_D(double x)
    +double SPLINE_eval_D(double x)

    Evaluate spline first derivative at x

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_eval

    -
    -
    -

    Next page

    -

    → Function SPLINE_eval_DD

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4.html b/docs/api-c/function_a00017_1a60354e5e10bea276df88937a859e36a4.html similarity index 62% rename from docs/api-c/function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4.html rename to docs/api-c/function_a00017_1a60354e5e10bea276df88937a859e36a4.html index cbc08f25..366ff35b 100644 --- a/docs/api-c/function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4.html +++ b/docs/api-c/function_a00017_1a60354e5e10bea276df88937a859e36a4.html @@ -7,16 +7,26 @@ - Function SPLINE_eval — Splines documentation + Function SPLINE_eval — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_eval +

    Function SPLINE_eval

    Function Documentation

    -double SPLINE_eval(double x)
    +double SPLINE_eval(double x)

    Evaluate spline at x

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_delete

    -
    -
    -

    Next page

    -

    → Function SPLINE_eval_D

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709.html b/docs/api-c/function_a00017_1a8cd7b632a4eb70a3464d02cb31c74709.html similarity index 62% rename from docs/api-c/function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709.html rename to docs/api-c/function_a00017_1a8cd7b632a4eb70a3464d02cb31c74709.html index ba9a4321..3b19fd55 100644 --- a/docs/api-c/function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709.html +++ b/docs/api-c/function_a00017_1a8cd7b632a4eb70a3464d02cb31c74709.html @@ -7,16 +7,26 @@ - Function SPLINE_init — Splines documentation + Function SPLINE_init — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_init +

    Function SPLINE_init

    Function Documentation

    -int SPLINE_init()
    +int SPLINE_init()

    Set actual pointed element of Spline to an empty spline.

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_get_type_name

    -
    -
    -

    Next page

    -

    → Function SPLINE_mem_ptr

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.html b/docs/api-c/function_a00017_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.html similarity index 61% rename from docs/api-c/function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.html rename to docs/api-c/function_a00017_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.html index 78842ff0..855b6abc 100644 --- a/docs/api-c/function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.html +++ b/docs/api-c/function_a00017_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.html @@ -7,16 +7,26 @@ - Function SPLINE_eval_DDDD — Splines documentation + Function SPLINE_eval_DDDD — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_eval_DDDD +

    Function SPLINE_eval_DDDD

    Function Documentation

    -double SPLINE_eval_DDDD(double x)
    +double SPLINE_eval_DDDD(double x)

    Evaluate spline 4th derivative at x

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_eval_DDD

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f.html b/docs/api-c/function_a00017_1a9352cde120110961745d3cd48d67de8f.html similarity index 62% rename from docs/api-c/function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f.html rename to docs/api-c/function_a00017_1a9352cde120110961745d3cd48d67de8f.html index d31b9c51..aa4146fe 100644 --- a/docs/api-c/function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f.html +++ b/docs/api-c/function_a00017_1a9352cde120110961745d3cd48d67de8f.html @@ -7,16 +7,26 @@ - Function SPLINE_eval_DDD — Splines documentation + Function SPLINE_eval_DDD — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_eval_DDD +

    Function SPLINE_eval_DDD

    Function Documentation

    -double SPLINE_eval_DDD(double x)
    +double SPLINE_eval_DDD(double x)

    Evaluate spline third derivative at x

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_eval_DD

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a.html b/docs/api-c/function_a00017_1a9b683ceadd58baaadaa58ca28268360a.html similarity index 61% rename from docs/api-c/function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a.html rename to docs/api-c/function_a00017_1a9b683ceadd58baaadaa58ca28268360a.html index 7b8e04e7..93eef8d4 100644 --- a/docs/api-c/function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a.html +++ b/docs/api-c/function_a00017_1a9b683ceadd58baaadaa58ca28268360a.html @@ -7,16 +7,26 @@ - Function SPLINE_get_type_name — Splines documentation + Function SPLINE_get_type_name — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_get_type_name +

    Function SPLINE_get_type_name

    Function Documentation

    -char const *SPLINE_get_type_name()
    +char const *SPLINE_get_type_name()

    Get type of actual pointed element of Spline

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_eval_DDDDD

    -
    -
    -

    Next page

    -

    → Function SPLINE_init

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e.html b/docs/api-c/function_a00017_1aa9a0988e747d636bd7a48b7dfb2b697e.html similarity index 62% rename from docs/api-c/function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e.html rename to docs/api-c/function_a00017_1aa9a0988e747d636bd7a48b7dfb2b697e.html index bb3f47fb..a38fc348 100644 --- a/docs/api-c/function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e.html +++ b/docs/api-c/function_a00017_1aa9a0988e747d636bd7a48b7dfb2b697e.html @@ -7,16 +7,26 @@ - Function SPLINE_eval_DD — Splines documentation + Function SPLINE_eval_DD — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_eval_DD +

    Function SPLINE_eval_DD

    Function Documentation

    -double SPLINE_eval_DD(double x)
    +double SPLINE_eval_DD(double x)

    Evaluate spline second derivative at x

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_eval_D

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97.html b/docs/api-c/function_a00017_1ab920995b11229ff331fcaaee2eeefc97.html similarity index 61% rename from docs/api-c/function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97.html rename to docs/api-c/function_a00017_1ab920995b11229ff331fcaaee2eeefc97.html index b32aa5b3..1c7d0d06 100644 --- a/docs/api-c/function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97.html +++ b/docs/api-c/function_a00017_1ab920995b11229ff331fcaaee2eeefc97.html @@ -7,16 +7,26 @@ - Function SPLINE_mem_ptr — Splines documentation + Function SPLINE_mem_ptr — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_mem_ptr +

    Function SPLINE_mem_ptr

    Function Documentation

    -void *SPLINE_mem_ptr(char const *id)
    +void *SPLINE_mem_ptr(char const *id)

    Get pointer to the internal Spline object ‘id’

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_init

    -
    -
    -

    Next page

    -

    → Function SPLINE_new

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a.html b/docs/api-c/function_a00017_1aba9ab3ef53dc9452a0155168b80b499a.html similarity index 63% rename from docs/api-c/function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a.html rename to docs/api-c/function_a00017_1aba9ab3ef53dc9452a0155168b80b499a.html index 559a9b33..a521ec25 100644 --- a/docs/api-c/function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a.html +++ b/docs/api-c/function_a00017_1aba9ab3ef53dc9452a0155168b80b499a.html @@ -7,16 +7,26 @@ - Function SPLINE_print — Splines documentation + Function SPLINE_print — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_print +

    Function SPLINE_print

    Function Documentation

    -int SPLINE_print()
    +int SPLINE_print()

    Print the actual Spline

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_new

    -
    -
    -

    Next page

    -

    → Function SPLINE_push

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132.html b/docs/api-c/function_a00017_1ac15f1700b8ccf2d2e5266992cf38c132.html similarity index 61% rename from docs/api-c/function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132.html rename to docs/api-c/function_a00017_1ac15f1700b8ccf2d2e5266992cf38c132.html index 09caffc4..ad0a3d4a 100644 --- a/docs/api-c/function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132.html +++ b/docs/api-c/function_a00017_1ac15f1700b8ccf2d2e5266992cf38c132.html @@ -7,16 +7,26 @@ - Function SPLINE_eval_DDDDD — Splines documentation + Function SPLINE_eval_DDDDD — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_eval_DDDDD +

    Function SPLINE_eval_DDDDD

    Function Documentation

    -double SPLINE_eval_DDDDD(double x)
    +double SPLINE_eval_DDDDD(double x)

    Evaluate spline 5th derivative at x

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_eval_DDDD

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8.html b/docs/api-c/function_a00017_1acdd57564fa775755a38daf483ffdf0e8.html similarity index 60% rename from docs/api-c/function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8.html rename to docs/api-c/function_a00017_1acdd57564fa775755a38daf483ffdf0e8.html index e1fd7bae..9347c71b 100644 --- a/docs/api-c/function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8.html +++ b/docs/api-c/function_a00017_1acdd57564fa775755a38daf483ffdf0e8.html @@ -7,16 +7,26 @@ - Function SPLINE_new — Splines documentation + Function SPLINE_new — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_new +

    Function SPLINE_new

    Function Documentation

    -int SPLINE_new(char const *id, char const *type)
    +int SPLINE_new(char const *id, char const *type)

    Create a new Spline object id

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_mem_ptr

    -
    -
    -

    Next page

    -

    → Function SPLINE_print

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df.html b/docs/api-c/function_a00017_1af29f47a6ce8296c7fb0f4021b35997df.html similarity index 62% rename from docs/api-c/function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df.html rename to docs/api-c/function_a00017_1af29f47a6ce8296c7fb0f4021b35997df.html index 5e4505c1..caa5294a 100644 --- a/docs/api-c/function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df.html +++ b/docs/api-c/function_a00017_1af29f47a6ce8296c7fb0f4021b35997df.html @@ -7,16 +7,26 @@ - Function SPLINE_delete — Splines documentation + Function SPLINE_delete — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function SPLINE_delete +

    Function SPLINE_delete

    Function Documentation

    -int SPLINE_delete(char const *id)
    +int SPLINE_delete(char const *id)

    Delete the Spline object id

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function SPLINE_build2

    -
    -
    -

    Next page

    -

    → Function SPLINE_eval

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-c/library_root.html b/docs/api-c/library_root.html deleted file mode 100644 index 100a773d..00000000 --- a/docs/api-c/library_root.html +++ /dev/null @@ -1,433 +0,0 @@ - - - - - - - - - - C API — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    C API -

    -
    -

    Class Hierarchy -

    -
    - -
    -
    -

    File Hierarchy -

    -
    - -
    -
    -

    Full API -

    - -
    -

    Defines -

    - - -
    -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.html b/docs/api-c/program_listing_file_SplinesCinterface.cc.html similarity index 94% rename from docs/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.html rename to docs/api-c/program_listing_file_SplinesCinterface.cc.html index 27b15340..50c141ad 100644 --- a/docs/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.html +++ b/docs/api-c/program_listing_file_SplinesCinterface.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplinesCinterface.cc — Splines documentation + Program Listing for File SplinesCinterface.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplinesCinterface.cc +

    Program Listing for File SplinesCinterface.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesCinterface.cc)

    +

    Return to documentation for file (SplinesCinterface.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -90,6 +100,7 @@ 

    Navigation

    // file: SplineCinterface.cc // + #ifndef DOXYGEN_SHOULD_SKIP_THIS #include "Splines.hh" @@ -326,13 +337,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -375,7 +388,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -384,7 +397,7 @@

    Navigation

    diff --git a/docs/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.html b/docs/api-c/program_listing_file_SplinesCinterface.h.html similarity index 84% rename from docs/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.html rename to docs/api-c/program_listing_file_SplinesCinterface.h.html index 1d4d418f..9f9da037 100644 --- a/docs/api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.html +++ b/docs/api-c/program_listing_file_SplinesCinterface.h.html @@ -7,16 +7,26 @@ - Program Listing for File SplinesCinterface.h — Splines documentation + Program Listing for File SplinesCinterface.h — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplinesCinterface.h +

    Program Listing for File SplinesCinterface.h

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesCinterface.h)

    +

    Return to documentation for file (SplinesCinterface.h)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -167,13 +177,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -216,7 +228,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -225,7 +237,7 @@

    Navigation

    diff --git a/docs/api-c/root.html b/docs/api-c/root.html new file mode 100644 index 00000000..a407c519 --- /dev/null +++ b/docs/api-c/root.html @@ -0,0 +1,393 @@ + + + + + + + + + + C API — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    + + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-c/unabridged_api.html b/docs/api-c/unabridged_api.html index 297c7aaf..5f4a792e 100644 --- a/docs/api-c/unabridged_api.html +++ b/docs/api-c/unabridged_api.html @@ -7,16 +7,26 @@ - Full API — Splines documentation + Full API — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -71,8 +81,8 @@

    Functions

    @@ -300,7 +300,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -309,7 +309,7 @@

    Navigation

    diff --git a/docs/api-c/unabridged_orphan.html b/docs/api-c/unabridged_orphan.html index 63c56a71..c87cc7e0 100644 --- a/docs/api-c/unabridged_orphan.html +++ b/docs/api-c/unabridged_orphan.html @@ -7,16 +7,26 @@ - Full API — Splines documentation + Full API — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -65,33 +75,34 @@

    Navigation

    Full API

    -
    -

    Directories + -
    -

    Files -

    @@ -169,7 +172,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -178,7 +181,7 @@

    Navigation

    diff --git a/docs/api-cpp/class_a00144.html b/docs/api-cpp/class_a00144.html new file mode 100644 index 00000000..5c46934f --- /dev/null +++ b/docs/api-cpp/class_a00144.html @@ -0,0 +1,916 @@ + + + + + + + + + + Class AkimaSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class AkimaSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::AkimaSpline : public Splines::CubicSplineBase
    +
    +
    +

    Smooth Curve Fitting Based on Local Procedures

    +

    Reference

    +

    +
      +
    • Hiroshi Akima, Journal of the ACM, Vol.17, No. 4, 589-602, 1970.

    • +
    + +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +inline virtual real_type DDDD(real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type DDDDD(real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline virtual real_type id_DDDD(integer, real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDDDD(integer, real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline AkimaSpline(string const &name = "AkimaSpline")
    +
    +
    +

    Construct an empty spline of type AkimaSpline

    +
    +
    + +
    +
    +inline ~AkimaSpline() override
    +
    +
    +

    Spline destructor.

    +
    +
    + +
    +
    +inline virtual unsigned type() const override
    +
    +
    +

    Return spline type (as number).

    +
    +
    + +
    +
    +virtual void build() override
    +
    +
    +

    Build a spline using internal stored data

    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc) override
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    + +
    +
    + +
    +
    +void copySpline(CubicSplineBase const &S)
    +
    +
    +
    + +
    +
    +inline real_type ypNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y’ component).

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    Change X-range of the spline.

    +
    +
    + +
    +
    +void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    +
    +
    +

    Use externally allocated memory for npts points.

    +
    +
    + +
    +
    +virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const override
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x) const override
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +virtual real_type D(real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type DD(real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type DDD(real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const override
    +
    +
    +

    Evaluate spline value when interval is known

    +
    +
    + +
    +
    +virtual real_type id_D(integer ni, real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type id_DD(integer ni, real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type id_DDD(integer ni, real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +virtual void reserve(integer npts) override
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • incx[in] access elements as x[0], x[incx], x[2*incx],…

    • +
    • y[in] vector of y-coordinates

    • +
    • incy[in] access elements as y[0], y[incy], y[2*incy],…

    • +
    • yp[in] vector of y-defivative

    • +
    • incyp[in] access elements as yp[0], yp[incyp], yp[2*incyy],…

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +virtual void clear() override
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    +
    +
    +

    get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const override
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00148.html b/docs/api-cpp/class_a00148.html new file mode 100644 index 00000000..2257a25e --- /dev/null +++ b/docs/api-cpp/class_a00148.html @@ -0,0 +1,821 @@ + + + + + + + + + + Class Akima2Dspline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class Akima2Dspline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::Akima2Dspline : public Splines::BiCubicSplineBase
    +
    +
    +

    Smooth Curve Fitting Based on Local Procedures

    +

    Reference

    +

    +
      +
    • +

      Hiroshi Akima

      +

      , A Method of Bivariate Interpolation and Smooth Surface Fitting for Irregularly Distributed Data Points.

      +

      ACM Transactions on Mathematical Software, Vol.4, 148-164, 1978.

      +
    • +
    + +
    +

    Public Functions

    +
    +
    +inline Akima2Dspline(string const &name = "Spline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~Akima2Dspline() override
    +
    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients.

    +
    +
    + +
    +
    +virtual char const *type_name() const override
    +
    +
    +

    Return spline type as a string pointer.

    +
    +
    + +
    +
    +inline real_type DxNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DxyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x, real_type y) const override
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +virtual void D(real_type x, real_type y, real_type d[3]) const override
    +
    +
    +

    Value and first derivatives at point \( (x,y) \):

    +

    +
      +
    • d[0] value of the spline \( S(x,y) \)

    • +
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dx(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dy(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \).

    +
    +
    + +
    +
    +virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    +
    +
    +

    Value, first and second derivatives at point \( (x,y) \):

    +

    +
      +
    • dd[0] value of the spline \( S(x,y) \)

    • +
    • dd[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • dd[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    • dd[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • +
    • dd[4] mixed second derivative: \( S_{xy}(x,y) \)

    • +
    • dd[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dxx(real_type x, real_type y) const override
    +
    +
    +

    Second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dxy(real_type x, real_type y) const override
    +
    +
    +

    Mixed second derivatives: \( S_{xy}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dyy(real_type x, real_type y) const override
    +
    +
    +

    Second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \).

    +
    +
    + +
    +
    +inline bool is_x_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_closed()
    +
    +
    +

    Setup the surface as closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_opened()
    +
    +
    +

    Setup the surface as open in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_closed()
    +
    +
    +

    Setup the surface as closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_opened()
    +
    +
    +

    Setup the surface as open in the y direction.

    +
    +
    + +
    +
    +inline bool is_x_bounded() const
    +
    +
    +

    Return true if the parameter x assumed bounded. If false the spline is estrapolated for x values outside the range.

    +
    +
    + +
    +
    +inline void make_x_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the x direction.

    +
    +
    + +
    +
    +inline void make_x_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_bounded() const
    +
    +
    +

    Return true if the parameter y assumed bounded. If false the spline is extrapolated for y values outside the range.

    +
    +
    + +
    +
    +inline void make_y_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the y direction

    +
    +
    + +
    +
    +inline void make_y_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline string const &name() const
    +
    +
    +
    + +
    +
    +void clear()
    +
    +
    +

    Cancel the support points, empty the spline.

    +
    +
    + +
    +
    +inline integer numPointX() const
    +
    +
    +

    Return the number of support points of the spline along x direction.

    +
    +
    + +
    +
    +inline integer numPointY() const
    +
    +
    +

    Return the number of support points of the spline along y direction.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type zNode(integer i, integer j) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    Return x-minumum spline value.

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    Return x-maximum spline value.

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    Return y-minumum spline value.

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    Return y-maximum spline value.

    +
    +
    + +
    +
    +inline real_type zMin() const
    +
    +
    +

    Return z-minumum spline value.

    +
    +
    + +
    +
    +inline real_type zMax() const
    +
    +
    +

    Return z-maximum spline value.

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • x the vector of x-nodes (size nx)

    • +
    • y the vector of y-nodes (size ny)

    • +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    + +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates, nx = x.size()

    • +
    • y – vector of y-coordinates, ny = y.size()

    • +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    • ldZ leading dimension of matriz z

    • +
    • nx number of nodes in x-direction

    • +
    • ny number of nodes in y-direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • +
    • nx – x-dimension

    • +
    • ny – y-dimension

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline surface using a GenericContainer

    +

    +
      +
    • gc("fortran_storage") if true zdata is stored by column, otherwise by rows

    • +
    • gc("transposed") if true zdata is stored transposed

    • +
    • gc("xdata") vector of mesh point in x direction

    • +
    • gc("ydata") vector of mesh point in y direction

    • +
    • +

      gc("zdata") may be

      +
        +
      • matrix of size nx x ny (ny x nx if data is transposed)

      • +
      • vector of size nx x ny stiring the data.

      • +
      +
    • +
    • nx number of nodes in x-direction the size of vector in x direction

    • +
    • ny number of nodes in y-direction the size of vector in y direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline real_type eval(real_type x, real_type y) const
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +inline real_type eval_D_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dyy(x,y)

    +
    +
    + +
    +
    +virtual string info() const
    +
    +
    +

    Return a string with information about the spline.

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    write a string with information about the spline.

    +
    +
    + +
    +
    +void dump_data(ostream_type &s) const
    +
    +
    +

    Print stored data x, y, and matrix z.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00152.html b/docs/api-cpp/class_a00152.html new file mode 100644 index 00000000..fc0ce1df --- /dev/null +++ b/docs/api-cpp/class_a00152.html @@ -0,0 +1,910 @@ + + + + + + + + + + Class BesselSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class BesselSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::BesselSpline : public Splines::CubicSplineBase
    +
    +
    +

    Bessel spline class

    +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +inline virtual real_type DDDD(real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type DDDDD(real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline virtual real_type id_DDDD(integer, real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDDDD(integer, real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline BesselSpline(string const &name = "BesselSpline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~BesselSpline() override
    +
    +
    +

    spline destructor

    +
    +
    + +
    +
    +inline virtual unsigned type() const override
    +
    +
    +

    Return spline type (as number)

    +
    +
    + +
    +
    +virtual void build() override
    +
    +
    +

    Build a spline using internal stored data

    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc) override
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    + +
    +
    + +
    +
    +void copySpline(CubicSplineBase const &S)
    +
    +
    +
    + +
    +
    +inline real_type ypNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y’ component).

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    Change X-range of the spline.

    +
    +
    + +
    +
    +void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    +
    +
    +

    Use externally allocated memory for npts points.

    +
    +
    + +
    +
    +virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const override
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x) const override
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +virtual real_type D(real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type DD(real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type DDD(real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const override
    +
    +
    +

    Evaluate spline value when interval is known

    +
    +
    + +
    +
    +virtual real_type id_D(integer ni, real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type id_DD(integer ni, real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type id_DDD(integer ni, real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +virtual void reserve(integer npts) override
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • incx[in] access elements as x[0], x[incx], x[2*incx],…

    • +
    • y[in] vector of y-coordinates

    • +
    • incy[in] access elements as y[0], y[incy], y[2*incy],…

    • +
    • yp[in] vector of y-defivative

    • +
    • incyp[in] access elements as yp[0], yp[incyp], yp[2*incyy],…

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +virtual void clear() override
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    +
    +
    +

    get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const override
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00156.html b/docs/api-cpp/class_a00156.html new file mode 100644 index 00000000..c726c0c9 --- /dev/null +++ b/docs/api-cpp/class_a00156.html @@ -0,0 +1,820 @@ + + + + + + + + + + Class BiCubicSplineBase — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class BiCubicSplineBase +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +

    Derived Types +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::BiCubicSplineBase : public Splines::SplineSurf
    +
    +
    +

    Bi-cubic spline base class.

    +

    Subclassed by Splines::Akima2Dspline, Splines::BiCubicSpline

    +
    +

    Public Functions

    +
    +
    +inline BiCubicSplineBase(string const &name = "Spline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~BiCubicSplineBase() override
    +
    +
    +
    + +
    +
    +inline real_type DxNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DxyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x, real_type y) const override
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +virtual void D(real_type x, real_type y, real_type d[3]) const override
    +
    +
    +

    Value and first derivatives at point \( (x,y) \):

    +

    +
      +
    • d[0] value of the spline \( S(x,y) \)

    • +
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dx(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dy(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \).

    +
    +
    + +
    +
    +virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    +
    +
    +

    Value, first and second derivatives at point \( (x,y) \):

    +

    +
      +
    • dd[0] value of the spline \( S(x,y) \)

    • +
    • dd[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • dd[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    • dd[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • +
    • dd[4] mixed second derivative: \( S_{xy}(x,y) \)

    • +
    • dd[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dxx(real_type x, real_type y) const override
    +
    +
    +

    Second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dxy(real_type x, real_type y) const override
    +
    +
    +

    Mixed second derivatives: \( S_{xy}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dyy(real_type x, real_type y) const override
    +
    +
    +

    Second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \).

    +
    +
    + +
    +
    +inline bool is_x_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_closed()
    +
    +
    +

    Setup the surface as closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_opened()
    +
    +
    +

    Setup the surface as open in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_closed()
    +
    +
    +

    Setup the surface as closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_opened()
    +
    +
    +

    Setup the surface as open in the y direction.

    +
    +
    + +
    +
    +inline bool is_x_bounded() const
    +
    +
    +

    Return true if the parameter x assumed bounded. If false the spline is estrapolated for x values outside the range.

    +
    +
    + +
    +
    +inline void make_x_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the x direction.

    +
    +
    + +
    +
    +inline void make_x_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_bounded() const
    +
    +
    +

    Return true if the parameter y assumed bounded. If false the spline is extrapolated for y values outside the range.

    +
    +
    + +
    +
    +inline void make_y_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the y direction

    +
    +
    + +
    +
    +inline void make_y_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline string const &name() const
    +
    +
    +
    + +
    +
    +void clear()
    +
    +
    +

    Cancel the support points, empty the spline.

    +
    +
    + +
    +
    +inline integer numPointX() const
    +
    +
    +

    Return the number of support points of the spline along x direction.

    +
    +
    + +
    +
    +inline integer numPointY() const
    +
    +
    +

    Return the number of support points of the spline along y direction.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type zNode(integer i, integer j) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    Return x-minumum spline value.

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    Return x-maximum spline value.

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    Return y-minumum spline value.

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    Return y-maximum spline value.

    +
    +
    + +
    +
    +inline real_type zMin() const
    +
    +
    +

    Return z-minumum spline value.

    +
    +
    + +
    +
    +inline real_type zMax() const
    +
    +
    +

    Return z-maximum spline value.

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • x the vector of x-nodes (size nx)

    • +
    • y the vector of y-nodes (size ny)

    • +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    + +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates, nx = x.size()

    • +
    • y – vector of y-coordinates, ny = y.size()

    • +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    • ldZ leading dimension of matriz z

    • +
    • nx number of nodes in x-direction

    • +
    • ny number of nodes in y-direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • +
    • nx – x-dimension

    • +
    • ny – y-dimension

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline surface using a GenericContainer

    +

    +
      +
    • gc("fortran_storage") if true zdata is stored by column, otherwise by rows

    • +
    • gc("transposed") if true zdata is stored transposed

    • +
    • gc("xdata") vector of mesh point in x direction

    • +
    • gc("ydata") vector of mesh point in y direction

    • +
    • +

      gc("zdata") may be

      +
        +
      • matrix of size nx x ny (ny x nx if data is transposed)

      • +
      • vector of size nx x ny stiring the data.

      • +
      +
    • +
    • nx number of nodes in x-direction the size of vector in x direction

    • +
    • ny number of nodes in y-direction the size of vector in y direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline real_type eval(real_type x, real_type y) const
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +inline real_type eval_D_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dyy(x,y)

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const = 0
    +
    +
    +

    Print spline coefficients.

    +
    +
    + +
    +
    +virtual char const *type_name() const = 0
    +
    +
    +

    Return spline type as a string pointer.

    +
    +
    + +
    +
    +virtual string info() const
    +
    +
    +

    Return a string with information about the spline.

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    write a string with information about the spline.

    +
    +
    + +
    +
    +void dump_data(ostream_type &s) const
    +
    +
    +

    Print stored data x, y, and matrix z.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00160.html b/docs/api-cpp/class_a00160.html new file mode 100644 index 00000000..62a02291 --- /dev/null +++ b/docs/api-cpp/class_a00160.html @@ -0,0 +1,811 @@ + + + + + + + + + + Class BiCubicSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class BiCubicSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::BiCubicSpline : public Splines::BiCubicSplineBase
    +
    +
    +

    cubic spline base class

    +
    +

    Public Functions

    +
    +
    +inline BiCubicSpline(string const &name = "Spline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~BiCubicSpline() override
    +
    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients.

    +
    +
    + +
    +
    +virtual char const *type_name() const override
    +
    +
    +

    Return spline type as a string pointer.

    +
    +
    + +
    +
    +inline real_type DxNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DxyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x, real_type y) const override
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +virtual void D(real_type x, real_type y, real_type d[3]) const override
    +
    +
    +

    Value and first derivatives at point \( (x,y) \):

    +

    +
      +
    • d[0] value of the spline \( S(x,y) \)

    • +
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dx(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dy(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \).

    +
    +
    + +
    +
    +virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    +
    +
    +

    Value, first and second derivatives at point \( (x,y) \):

    +

    +
      +
    • dd[0] value of the spline \( S(x,y) \)

    • +
    • dd[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • dd[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    • dd[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • +
    • dd[4] mixed second derivative: \( S_{xy}(x,y) \)

    • +
    • dd[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dxx(real_type x, real_type y) const override
    +
    +
    +

    Second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dxy(real_type x, real_type y) const override
    +
    +
    +

    Mixed second derivatives: \( S_{xy}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dyy(real_type x, real_type y) const override
    +
    +
    +

    Second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \).

    +
    +
    + +
    +
    +inline bool is_x_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_closed()
    +
    +
    +

    Setup the surface as closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_opened()
    +
    +
    +

    Setup the surface as open in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_closed()
    +
    +
    +

    Setup the surface as closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_opened()
    +
    +
    +

    Setup the surface as open in the y direction.

    +
    +
    + +
    +
    +inline bool is_x_bounded() const
    +
    +
    +

    Return true if the parameter x assumed bounded. If false the spline is estrapolated for x values outside the range.

    +
    +
    + +
    +
    +inline void make_x_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the x direction.

    +
    +
    + +
    +
    +inline void make_x_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_bounded() const
    +
    +
    +

    Return true if the parameter y assumed bounded. If false the spline is extrapolated for y values outside the range.

    +
    +
    + +
    +
    +inline void make_y_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the y direction

    +
    +
    + +
    +
    +inline void make_y_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline string const &name() const
    +
    +
    +
    + +
    +
    +void clear()
    +
    +
    +

    Cancel the support points, empty the spline.

    +
    +
    + +
    +
    +inline integer numPointX() const
    +
    +
    +

    Return the number of support points of the spline along x direction.

    +
    +
    + +
    +
    +inline integer numPointY() const
    +
    +
    +

    Return the number of support points of the spline along y direction.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type zNode(integer i, integer j) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    Return x-minumum spline value.

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    Return x-maximum spline value.

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    Return y-minumum spline value.

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    Return y-maximum spline value.

    +
    +
    + +
    +
    +inline real_type zMin() const
    +
    +
    +

    Return z-minumum spline value.

    +
    +
    + +
    +
    +inline real_type zMax() const
    +
    +
    +

    Return z-maximum spline value.

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • x the vector of x-nodes (size nx)

    • +
    • y the vector of y-nodes (size ny)

    • +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    + +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates, nx = x.size()

    • +
    • y – vector of y-coordinates, ny = y.size()

    • +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    • ldZ leading dimension of matriz z

    • +
    • nx number of nodes in x-direction

    • +
    • ny number of nodes in y-direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • +
    • nx – x-dimension

    • +
    • ny – y-dimension

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline surface using a GenericContainer

    +

    +
      +
    • gc("fortran_storage") if true zdata is stored by column, otherwise by rows

    • +
    • gc("transposed") if true zdata is stored transposed

    • +
    • gc("xdata") vector of mesh point in x direction

    • +
    • gc("ydata") vector of mesh point in y direction

    • +
    • +

      gc("zdata") may be

      +
        +
      • matrix of size nx x ny (ny x nx if data is transposed)

      • +
      • vector of size nx x ny stiring the data.

      • +
      +
    • +
    • nx number of nodes in x-direction the size of vector in x direction

    • +
    • ny number of nodes in y-direction the size of vector in y direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline real_type eval(real_type x, real_type y) const
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +inline real_type eval_D_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dyy(x,y)

    +
    +
    + +
    +
    +virtual string info() const
    +
    +
    +

    Return a string with information about the spline.

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    write a string with information about the spline.

    +
    +
    + +
    +
    +void dump_data(ostream_type &s) const
    +
    +
    +

    Print stored data x, y, and matrix z.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00164.html b/docs/api-cpp/class_a00164.html new file mode 100644 index 00000000..81dc01bc --- /dev/null +++ b/docs/api-cpp/class_a00164.html @@ -0,0 +1,790 @@ + + + + + + + + + + Class BilinearSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class BilinearSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::BilinearSpline : public Splines::SplineSurf
    +
    +
    +

    bilinear spline base class

    +
    +

    Public Functions

    +
    +
    +inline BilinearSpline(string const &name = "Spline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~BilinearSpline() override
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x, real_type y) const override
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +virtual void D(real_type x, real_type y, real_type d[3]) const override
    +
    +
    +

    Value and first derivatives at point \( (x,y) \):

    +

    +
      +
    • d[0] value of the spline \( S(x,y) \)

    • +
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dx(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dy(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \).

    +
    +
    + +
    +
    +virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    +
    +
    +

    Value, first and second derivatives at point \( (x,y) \):

    +

    +
      +
    • dd[0] value of the spline \( S(x,y) \)

    • +
    • dd[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • dd[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    • dd[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • +
    • dd[4] mixed second derivative: \( S_{xy}(x,y) \)

    • +
    • dd[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • +
    + +
    +
    + +
    +
    +inline virtual real_type Dxx(real_type, real_type) const override
    +
    +
    +

    Second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \).

    +
    +
    + +
    +
    +inline virtual real_type Dxy(real_type, real_type) const override
    +
    +
    +

    Mixed second derivatives: \( S_{xy}(x,y) \).

    +
    +
    + +
    +
    +inline virtual real_type Dyy(real_type, real_type) const override
    +
    +
    +

    Second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \).

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients.

    +
    +
    + +
    +
    +virtual char const *type_name() const override
    +
    +
    +

    Return spline type as a string pointer.

    +
    +
    + +
    +
    +inline bool is_x_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_closed()
    +
    +
    +

    Setup the surface as closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_opened()
    +
    +
    +

    Setup the surface as open in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_closed()
    +
    +
    +

    Setup the surface as closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_opened()
    +
    +
    +

    Setup the surface as open in the y direction.

    +
    +
    + +
    +
    +inline bool is_x_bounded() const
    +
    +
    +

    Return true if the parameter x assumed bounded. If false the spline is estrapolated for x values outside the range.

    +
    +
    + +
    +
    +inline void make_x_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the x direction.

    +
    +
    + +
    +
    +inline void make_x_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_bounded() const
    +
    +
    +

    Return true if the parameter y assumed bounded. If false the spline is extrapolated for y values outside the range.

    +
    +
    + +
    +
    +inline void make_y_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the y direction

    +
    +
    + +
    +
    +inline void make_y_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline string const &name() const
    +
    +
    +
    + +
    +
    +void clear()
    +
    +
    +

    Cancel the support points, empty the spline.

    +
    +
    + +
    +
    +inline integer numPointX() const
    +
    +
    +

    Return the number of support points of the spline along x direction.

    +
    +
    + +
    +
    +inline integer numPointY() const
    +
    +
    +

    Return the number of support points of the spline along y direction.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type zNode(integer i, integer j) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    Return x-minumum spline value.

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    Return x-maximum spline value.

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    Return y-minumum spline value.

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    Return y-maximum spline value.

    +
    +
    + +
    +
    +inline real_type zMin() const
    +
    +
    +

    Return z-minumum spline value.

    +
    +
    + +
    +
    +inline real_type zMax() const
    +
    +
    +

    Return z-maximum spline value.

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • x the vector of x-nodes (size nx)

    • +
    • y the vector of y-nodes (size ny)

    • +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    + +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates, nx = x.size()

    • +
    • y – vector of y-coordinates, ny = y.size()

    • +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    • ldZ leading dimension of matriz z

    • +
    • nx number of nodes in x-direction

    • +
    • ny number of nodes in y-direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • +
    • nx – x-dimension

    • +
    • ny – y-dimension

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline surface using a GenericContainer

    +

    +
      +
    • gc("fortran_storage") if true zdata is stored by column, otherwise by rows

    • +
    • gc("transposed") if true zdata is stored transposed

    • +
    • gc("xdata") vector of mesh point in x direction

    • +
    • gc("ydata") vector of mesh point in y direction

    • +
    • +

      gc("zdata") may be

      +
        +
      • matrix of size nx x ny (ny x nx if data is transposed)

      • +
      • vector of size nx x ny stiring the data.

      • +
      +
    • +
    • nx number of nodes in x-direction the size of vector in x direction

    • +
    • ny number of nodes in y-direction the size of vector in y direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline real_type eval(real_type x, real_type y) const
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +inline real_type eval_D_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dyy(x,y)

    +
    +
    + +
    +
    +virtual string info() const
    +
    +
    +

    Return a string with information about the spline.

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    write a string with information about the spline.

    +
    +
    + +
    +
    +void dump_data(ostream_type &s) const
    +
    +
    +

    Print stored data x, y, and matrix z.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00168.html b/docs/api-cpp/class_a00168.html new file mode 100644 index 00000000..a95319df --- /dev/null +++ b/docs/api-cpp/class_a00168.html @@ -0,0 +1,833 @@ + + + + + + + + + + Class BiQuinticSplineBase — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class BiQuinticSplineBase +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +

    Derived Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::BiQuinticSplineBase : public Splines::SplineSurf
    +
    +
    +

    Bi-quintic spline base class.

    +

    Subclassed by Splines::BiQuinticSpline

    +
    +

    Public Functions

    +
    +
    +inline BiQuinticSplineBase(string const &name = "Spline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~BiQuinticSplineBase() override
    +
    +
    +
    + +
    +
    +inline real_type DxNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DxxNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DyyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DxyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x, real_type y) const override
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +virtual void D(real_type x, real_type y, real_type d[3]) const override
    +
    +
    +

    Value and first derivatives at point \( (x,y) \):

    +

    +
      +
    • d[0] value of the spline \( S(x,y) \)

    • +
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dx(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dy(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \).

    +
    +
    + +
    +
    +virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    +
    +
    +

    Value, first and second derivatives at point \( (x,y) \):

    +

    +
      +
    • dd[0] value of the spline \( S(x,y) \)

    • +
    • dd[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • dd[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    • dd[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • +
    • dd[4] mixed second derivative: \( S_{xy}(x,y) \)

    • +
    • dd[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dxx(real_type x, real_type y) const override
    +
    +
    +

    Second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dxy(real_type x, real_type y) const override
    +
    +
    +

    Mixed second derivatives: \( S_{xy}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dyy(real_type x, real_type y) const override
    +
    +
    +

    Second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \).

    +
    +
    + +
    +
    +inline bool is_x_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_closed()
    +
    +
    +

    Setup the surface as closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_opened()
    +
    +
    +

    Setup the surface as open in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_closed()
    +
    +
    +

    Setup the surface as closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_opened()
    +
    +
    +

    Setup the surface as open in the y direction.

    +
    +
    + +
    +
    +inline bool is_x_bounded() const
    +
    +
    +

    Return true if the parameter x assumed bounded. If false the spline is estrapolated for x values outside the range.

    +
    +
    + +
    +
    +inline void make_x_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the x direction.

    +
    +
    + +
    +
    +inline void make_x_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_bounded() const
    +
    +
    +

    Return true if the parameter y assumed bounded. If false the spline is extrapolated for y values outside the range.

    +
    +
    + +
    +
    +inline void make_y_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the y direction

    +
    +
    + +
    +
    +inline void make_y_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline string const &name() const
    +
    +
    +
    + +
    +
    +void clear()
    +
    +
    +

    Cancel the support points, empty the spline.

    +
    +
    + +
    +
    +inline integer numPointX() const
    +
    +
    +

    Return the number of support points of the spline along x direction.

    +
    +
    + +
    +
    +inline integer numPointY() const
    +
    +
    +

    Return the number of support points of the spline along y direction.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type zNode(integer i, integer j) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    Return x-minumum spline value.

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    Return x-maximum spline value.

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    Return y-minumum spline value.

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    Return y-maximum spline value.

    +
    +
    + +
    +
    +inline real_type zMin() const
    +
    +
    +

    Return z-minumum spline value.

    +
    +
    + +
    +
    +inline real_type zMax() const
    +
    +
    +

    Return z-maximum spline value.

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • x the vector of x-nodes (size nx)

    • +
    • y the vector of y-nodes (size ny)

    • +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    + +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates, nx = x.size()

    • +
    • y – vector of y-coordinates, ny = y.size()

    • +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    • ldZ leading dimension of matriz z

    • +
    • nx number of nodes in x-direction

    • +
    • ny number of nodes in y-direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • +
    • nx – x-dimension

    • +
    • ny – y-dimension

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline surface using a GenericContainer

    +

    +
      +
    • gc("fortran_storage") if true zdata is stored by column, otherwise by rows

    • +
    • gc("transposed") if true zdata is stored transposed

    • +
    • gc("xdata") vector of mesh point in x direction

    • +
    • gc("ydata") vector of mesh point in y direction

    • +
    • +

      gc("zdata") may be

      +
        +
      • matrix of size nx x ny (ny x nx if data is transposed)

      • +
      • vector of size nx x ny stiring the data.

      • +
      +
    • +
    • nx number of nodes in x-direction the size of vector in x direction

    • +
    • ny number of nodes in y-direction the size of vector in y direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline real_type eval(real_type x, real_type y) const
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +inline real_type eval_D_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dyy(x,y)

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const = 0
    +
    +
    +

    Print spline coefficients.

    +
    +
    + +
    +
    +virtual char const *type_name() const = 0
    +
    +
    +

    Return spline type as a string pointer.

    +
    +
    + +
    +
    +virtual string info() const
    +
    +
    +

    Return a string with information about the spline.

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    write a string with information about the spline.

    +
    +
    + +
    +
    +void dump_data(ostream_type &s) const
    +
    +
    +

    Print stored data x, y, and matrix z.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00172.html b/docs/api-cpp/class_a00172.html new file mode 100644 index 00000000..2c51a6ef --- /dev/null +++ b/docs/api-cpp/class_a00172.html @@ -0,0 +1,825 @@ + + + + + + + + + + Class BiQuinticSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class BiQuinticSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::BiQuinticSpline : public Splines::BiQuinticSplineBase
    +
    +
    +

    cubic spline base class

    +
    +

    Public Functions

    +
    +
    +inline BiQuinticSpline(string const &name = "Spline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~BiQuinticSpline() override
    +
    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients.

    +
    +
    + +
    +
    +virtual char const *type_name() const override
    +
    +
    +

    Return spline type as a string pointer.

    +
    +
    + +
    +
    +inline real_type DxNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DxxNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DyyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +inline real_type DxyNode(integer i, integer j) const
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x, real_type y) const override
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +virtual void D(real_type x, real_type y, real_type d[3]) const override
    +
    +
    +

    Value and first derivatives at point \( (x,y) \):

    +

    +
      +
    • d[0] value of the spline \( S(x,y) \)

    • +
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dx(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dy(real_type x, real_type y) const override
    +
    +
    +

    First derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \).

    +
    +
    + +
    +
    +virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    +
    +
    +

    Value, first and second derivatives at point \( (x,y) \):

    +

    +
      +
    • dd[0] value of the spline \( S(x,y) \)

    • +
    • dd[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • dd[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    • dd[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • +
    • dd[4] mixed second derivative: \( S_{xy}(x,y) \)

    • +
    • dd[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dxx(real_type x, real_type y) const override
    +
    +
    +

    Second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dxy(real_type x, real_type y) const override
    +
    +
    +

    Mixed second derivatives: \( S_{xy}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dyy(real_type x, real_type y) const override
    +
    +
    +

    Second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \).

    +
    +
    + +
    +
    +inline bool is_x_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_closed()
    +
    +
    +

    Setup the surface as closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_opened()
    +
    +
    +

    Setup the surface as open in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_closed()
    +
    +
    +

    Setup the surface as closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_opened()
    +
    +
    +

    Setup the surface as open in the y direction.

    +
    +
    + +
    +
    +inline bool is_x_bounded() const
    +
    +
    +

    Return true if the parameter x assumed bounded. If false the spline is estrapolated for x values outside the range.

    +
    +
    + +
    +
    +inline void make_x_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the x direction.

    +
    +
    + +
    +
    +inline void make_x_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_bounded() const
    +
    +
    +

    Return true if the parameter y assumed bounded. If false the spline is extrapolated for y values outside the range.

    +
    +
    + +
    +
    +inline void make_y_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the y direction

    +
    +
    + +
    +
    +inline void make_y_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline string const &name() const
    +
    +
    +
    + +
    +
    +void clear()
    +
    +
    +

    Cancel the support points, empty the spline.

    +
    +
    + +
    +
    +inline integer numPointX() const
    +
    +
    +

    Return the number of support points of the spline along x direction.

    +
    +
    + +
    +
    +inline integer numPointY() const
    +
    +
    +

    Return the number of support points of the spline along y direction.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type zNode(integer i, integer j) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    Return x-minumum spline value.

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    Return x-maximum spline value.

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    Return y-minumum spline value.

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    Return y-maximum spline value.

    +
    +
    + +
    +
    +inline real_type zMin() const
    +
    +
    +

    Return z-minumum spline value.

    +
    +
    + +
    +
    +inline real_type zMax() const
    +
    +
    +

    Return z-maximum spline value.

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • x the vector of x-nodes (size nx)

    • +
    • y the vector of y-nodes (size ny)

    • +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    + +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates, nx = x.size()

    • +
    • y – vector of y-coordinates, ny = y.size()

    • +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    • ldZ leading dimension of matriz z

    • +
    • nx number of nodes in x-direction

    • +
    • ny number of nodes in y-direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • +
    • nx – x-dimension

    • +
    • ny – y-dimension

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline surface using a GenericContainer

    +

    +
      +
    • gc("fortran_storage") if true zdata is stored by column, otherwise by rows

    • +
    • gc("transposed") if true zdata is stored transposed

    • +
    • gc("xdata") vector of mesh point in x direction

    • +
    • gc("ydata") vector of mesh point in y direction

    • +
    • +

      gc("zdata") may be

      +
        +
      • matrix of size nx x ny (ny x nx if data is transposed)

      • +
      • vector of size nx x ny stiring the data.

      • +
      +
    • +
    • nx number of nodes in x-direction the size of vector in x direction

    • +
    • ny number of nodes in y-direction the size of vector in y direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline real_type eval(real_type x, real_type y) const
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +inline real_type eval_D_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dyy(x,y)

    +
    +
    + +
    +
    +virtual string info() const
    +
    +
    +

    Return a string with information about the spline.

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    write a string with information about the spline.

    +
    +
    + +
    +
    +void dump_data(ostream_type &s) const
    +
    +
    +

    Print stored data x, y, and matrix z.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00176.html b/docs/api-cpp/class_a00176.html new file mode 100644 index 00000000..68def3b4 --- /dev/null +++ b/docs/api-cpp/class_a00176.html @@ -0,0 +1,828 @@ + + + + + + + + + + Class ConstantSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class ConstantSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::ConstantSpline : public Splines::Spline
    +
    +
    +

    Picewise constants spline class.

    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    change X-range of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +inline virtual real_type DDDD(real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type DDDDD(real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline virtual real_type id_DDDD(integer, real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDDDD(integer, real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline ConstantSpline(string const &name = "ConstantSpline")
    +
    +
    +
    + +
    +
    +inline ~ConstantSpline() override
    +
    +
    +
    + +
    +
    +void reserve_external(integer n, real_type *&p_x, real_type *&p_y)
    +
    +
    +

    Use externally allocated memory for npts points.

    +
    +
    + +
    +
    +inline virtual void build() override
    +
    +
    +

    Build a spline using internal stored data

    +
    +
    + +
    +
    +virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n) override
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x) const override
    +
    +
    +

    Evalute spline value at x

    +
    +
    + +
    +
    +inline virtual real_type D(real_type) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +inline virtual real_type DD(real_type) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +inline virtual real_type DDD(real_type) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const override
    +
    +
    +

    Evalute spline value at x

    +
    +
    + +
    +
    +inline virtual real_type id_D(integer, real_type) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DD(integer, real_type) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDD(integer, real_type) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type&) const override
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +inline virtual unsigned type() const override
    +
    +
    +

    spline type returned as integer

    +
    +
    + +
    +
    +virtual void reserve(integer npts) override
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +virtual void clear() override
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    +
    +
    +

    get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const override
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc) override
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    + +
    +
    + +
    +
    +virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const override
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00180.html b/docs/api-cpp/class_a00180.html new file mode 100644 index 00000000..4ab80700 --- /dev/null +++ b/docs/api-cpp/class_a00180.html @@ -0,0 +1,959 @@ + + + + + + + + + + Class CubicSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class CubicSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::CubicSpline : public Splines::CubicSplineBase
    +
    +
    +

    Cubic Spline Management Class

    +
    +

    Constructor

    +
    +
    +inline CubicSpline(string const &name = "CubicSpline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~CubicSpline() override
    +
    +
    +

    spline destructor

    +
    +
    + +
    +
    +

    Setup

    +
    +
    +inline void setInitialBC(CUBIC_SPLINE_TYPE_BC bc0)
    +
    +
    +

    Set the boudary consition for initial point

    +
    +
    Parameters
    +
    +

    bc0[in] initial boundary condition.

    +
    +
    +
    +
    + +
    +
    +inline void setFinalBC(CUBIC_SPLINE_TYPE_BC bcn)
    +
    +
    +

    Set the boudary consition for final point

    +
    +
    Parameters
    +
    +

    bcn[in] final boundary condition.

    +
    +
    +
    +
    + +
    +
    +virtual void build() override
    +
    +
    +

    Build a spline using internal stored data

    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc) override
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    + +

    may contain

    +
      +
    • +

      gc(“bc_begin”) and/or gc(“bc_end”)

      +
        +
      • ”extrapolate” extrapolate the boundary condition

      • +
      • ”natural” make second derivative 0 at the border

      • +
      • ”parabolic” make third derivative 0 at the border

      • +
      • ”not_a_knot” not a knot condition of De Boor

      • +
      +
    • +
    + +
    +
    + +
    +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +inline virtual real_type DDDD(real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type DDDDD(real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline virtual real_type id_DDDD(integer, real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDDDD(integer, real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline virtual unsigned type() const override
    +
    +
    +

    Return spline type (as number)

    +
    +
    + +
    +
    +void copySpline(CubicSplineBase const &S)
    +
    +
    +
    + +
    +
    +inline real_type ypNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y’ component).

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    Change X-range of the spline.

    +
    +
    + +
    +
    +void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    +
    +
    +

    Use externally allocated memory for npts points.

    +
    +
    + +
    +
    +virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const override
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x) const override
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +virtual real_type D(real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type DD(real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type DDD(real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const override
    +
    +
    +

    Evaluate spline value when interval is known

    +
    +
    + +
    +
    +virtual real_type id_D(integer ni, real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type id_DD(integer ni, real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type id_DDD(integer ni, real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +virtual void reserve(integer npts) override
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • incx[in] access elements as x[0], x[incx], x[2*incx],…

    • +
    • y[in] vector of y-coordinates

    • +
    • incy[in] access elements as y[0], y[incy], y[2*incy],…

    • +
    • yp[in] vector of y-defivative

    • +
    • incyp[in] access elements as yp[0], yp[incyp], yp[2*incyy],…

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +virtual void clear() override
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    +
    +
    +

    get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const override
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00184.html b/docs/api-cpp/class_a00184.html new file mode 100644 index 00000000..dd2f2997 --- /dev/null +++ b/docs/api-cpp/class_a00184.html @@ -0,0 +1,911 @@ + + + + + + + + + + Class HermiteSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class HermiteSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::HermiteSpline : public Splines::CubicSplineBase
    +
    +
    +

    Hermite Spline Management Class.

    +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +inline virtual real_type DDDD(real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type DDDDD(real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline virtual real_type id_DDDD(integer, real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDDDD(integer, real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline HermiteSpline(string const &name = "HermiteSpline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~HermiteSpline() override
    +
    +
    +

    spline destructor

    +
    +
    + +
    +
    +inline virtual unsigned type() const override
    +
    +
    +

    Return spline type (as number)

    +
    +
    + +
    +
    +inline virtual void build() override
    +
    +
    +

    Build a spline using internal stored data

    +
    +
    + +
    +
    +virtual void build(real_type const*, integer, real_type const*, integer, integer) override
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc) override
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    • gc(“ypdata”) vector with the y derivative of the data

    • +
    + +
    +
    + +
    +
    +void copySpline(CubicSplineBase const &S)
    +
    +
    +
    + +
    +
    +inline real_type ypNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y’ component).

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    Change X-range of the spline.

    +
    +
    + +
    +
    +void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    +
    +
    +

    Use externally allocated memory for npts points.

    +
    +
    + +
    +
    +virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const override
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x) const override
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +virtual real_type D(real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type DD(real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type DDD(real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const override
    +
    +
    +

    Evaluate spline value when interval is known

    +
    +
    + +
    +
    +virtual real_type id_D(integer ni, real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type id_DD(integer ni, real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type id_DDD(integer ni, real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +virtual void reserve(integer npts) override
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • incx[in] access elements as x[0], x[incx], x[2*incx],…

    • +
    • y[in] vector of y-coordinates

    • +
    • incy[in] access elements as y[0], y[incy], y[2*incy],…

    • +
    • yp[in] vector of y-defivative

    • +
    • incyp[in] access elements as yp[0], yp[incyp], yp[2*incyy],…

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +virtual void clear() override
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    +
    +
    +

    get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const override
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00188.html b/docs/api-cpp/class_a00188.html new file mode 100644 index 00000000..ff315926 --- /dev/null +++ b/docs/api-cpp/class_a00188.html @@ -0,0 +1,828 @@ + + + + + + + + + + Class LinearSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class LinearSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::LinearSpline : public Splines::Spline
    +
    +
    +

    Linear spline class.

    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    change X-range of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +inline virtual real_type DDDD(real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type DDDDD(real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline virtual real_type id_DDDD(integer, real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDDDD(integer, real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline LinearSpline(string const &name = "LinearSpline")
    +
    +
    +
    + +
    +
    +inline ~LinearSpline() override
    +
    +
    +
    + +
    +
    +void reserve_external(integer n, real_type *&p_x, real_type *&p_y)
    +
    +
    +

    Use externally allocated memory for npts points.

    +
    +
    + +
    +
    +virtual real_type operator()(real_type x) const override
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +virtual real_type D(real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +inline virtual real_type DD(real_type) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +inline virtual real_type DDD(real_type) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const override
    +
    +
    +

    Evaluate spline value when interval is known

    +
    +
    + +
    +
    +virtual real_type id_D(integer, real_type) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DD(integer, real_type) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDD(integer, real_type) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +inline virtual unsigned type() const override
    +
    +
    +

    spline type returned as integer

    +
    +
    + +
    +
    +virtual void reserve(integer npts) override
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +inline virtual void build() override
    +
    +
    +

    Build a spline using internal stored data

    +
    +
    + +
    +
    +virtual void clear() override
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    +
    +
    +

    get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const override
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc) override
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    + +
    +
    + +
    +
    +virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const override
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00192.html b/docs/api-cpp/class_a00192.html new file mode 100644 index 00000000..92fe14e5 --- /dev/null +++ b/docs/api-cpp/class_a00192.html @@ -0,0 +1,910 @@ + + + + + + + + + + Class PchipSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class PchipSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::PchipSpline : public Splines::CubicSplineBase
    +
    +
    +

    Pchip (Piecewise Cubic Hermite Interpolating Polynomial) spline class.

    +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +inline virtual real_type DDDD(real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type DDDDD(real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline virtual real_type id_DDDD(integer, real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDDDD(integer, real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline PchipSpline(string const &name = "PchipSpline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~PchipSpline() override
    +
    +
    +

    spline destructor

    +
    +
    + +
    +
    +inline virtual unsigned type() const override
    +
    +
    +

    Return spline type (as number)

    +
    +
    + +
    +
    +virtual void build() override
    +
    +
    +

    Build a Monotone spline from previously inserted points.

    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc) override
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    + +
    +
    + +
    +
    +void copySpline(CubicSplineBase const &S)
    +
    +
    +
    + +
    +
    +inline real_type ypNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y’ component).

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    Change X-range of the spline.

    +
    +
    + +
    +
    +void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    +
    +
    +

    Use externally allocated memory for npts points.

    +
    +
    + +
    +
    +virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const override
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x) const override
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +virtual real_type D(real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type DD(real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type DDD(real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const override
    +
    +
    +

    Evaluate spline value when interval is known

    +
    +
    + +
    +
    +virtual real_type id_D(integer ni, real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type id_DD(integer ni, real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type id_DDD(integer ni, real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +virtual void reserve(integer npts) override
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • incx[in] access elements as x[0], x[incx], x[2*incx],…

    • +
    • y[in] vector of y-coordinates

    • +
    • incy[in] access elements as y[0], y[incy], y[2*incy],…

    • +
    • yp[in] vector of y-defivative

    • +
    • incyp[in] access elements as yp[0], yp[incyp], yp[2*incyy],…

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +virtual void clear() override
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    +
    +
    +

    get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const override
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00196.html b/docs/api-cpp/class_a00196.html new file mode 100644 index 00000000..90c8ea5b --- /dev/null +++ b/docs/api-cpp/class_a00196.html @@ -0,0 +1,867 @@ + + + + + + + + + + Class QuinticSpline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class QuinticSpline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::QuinticSpline : public Splines::QuinticSplineBase
    +
    +
    +

    Quintic spline class.

    +
    +

    Constructors

    +
    +
    +inline QuinticSpline(string const &name = "Spline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline ~QuinticSpline() override
    +
    +
    +

    spline destructor

    +
    +
    + +
    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline void setQuinticType(QUINTIC_SPLINE_TYPE qt)
    +
    +
    +
    + +
    +
    +virtual void build() override
    +
    +
    +

    Build a Monotone quintic spline from previously inserted points.

    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc) override
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    + +
    +
    + +
    +
    +void copySpline(QuinticSplineBase const &S)
    +
    +
    +
    + +
    +
    +inline real_type ypNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y’ component).

    +
    +
    + +
    +
    +inline real_type yppNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y’’ component).

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    Change X-range of the spline

    +
    +
    + +
    +
    +void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_Yp, real_type *&p_Ypp)
    +
    +
    +

    Use externally allocated memory for npts points

    +
    +
    + +
    +
    +virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const override
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x) const override
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +virtual real_type D(real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type DD(real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type DDD(real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type DDDD(real_type x) const override
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +virtual real_type DDDDD(real_type x) const override
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const override
    +
    +
    +

    Evaluate spline value when interval is known

    +
    +
    + +
    +
    +virtual real_type id_D(integer ni, real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type id_DD(integer ni, real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type id_DDD(integer ni, real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type id_DDDD(integer ni, real_type x) const override
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +virtual real_type id_DDDDD(integer ni, real_type x) const override
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +inline virtual unsigned type() const override
    +
    +
    +

    spline type returned as integer

    +
    +
    + +
    +
    +virtual void reserve(integer npts) override
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +virtual void clear() override
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    +
    +
    +

    Get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const override
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00200.html b/docs/api-cpp/class_a00200.html new file mode 100644 index 00000000..939e901e --- /dev/null +++ b/docs/api-cpp/class_a00200.html @@ -0,0 +1,866 @@ + + + + + + + + + + Class QuinticSplineBase — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class QuinticSplineBase +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +

    Derived Type +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::QuinticSplineBase : public Splines::Spline
    +
    +
    +

    Quintic spline base class

    +

    Subclassed by Splines::QuinticSpline

    +
    +

    Constructors

    +
    +
    +inline QuinticSplineBase(string const &name = "Spline")
    +
    +
    +

    Spline constructor

    +
    +
    + +
    +
    +inline ~QuinticSplineBase() override
    +
    +
    +
    + +
    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +virtual void build() = 0
    +
    +
    +

    Build a spline using internal stored data

    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    + +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +void copySpline(QuinticSplineBase const &S)
    +
    +
    +
    + +
    +
    +inline real_type ypNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y’ component).

    +
    +
    + +
    +
    +inline real_type yppNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y’’ component).

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    Change X-range of the spline

    +
    +
    + +
    +
    +void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_Yp, real_type *&p_Ypp)
    +
    +
    +

    Use externally allocated memory for npts points

    +
    +
    + +
    +
    +virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const override
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x) const override
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +virtual real_type D(real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type DD(real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type DDD(real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type DDDD(real_type x) const override
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +virtual real_type DDDDD(real_type x) const override
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const override
    +
    +
    +

    Evaluate spline value when interval is known

    +
    +
    + +
    +
    +virtual real_type id_D(integer ni, real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type id_DD(integer ni, real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type id_DDD(integer ni, real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type id_DDDD(integer ni, real_type x) const override
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +virtual real_type id_DDDDD(integer ni, real_type x) const override
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +inline virtual unsigned type() const override
    +
    +
    +

    spline type returned as integer

    +
    +
    + +
    +
    +virtual void reserve(integer npts) override
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +virtual void clear() override
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    +
    +
    +

    Get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const override
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00204.html b/docs/api-cpp/class_a00204.html new file mode 100644 index 00000000..7d23aa77 --- /dev/null +++ b/docs/api-cpp/class_a00204.html @@ -0,0 +1,830 @@ + + + + + + + + + + Class Spline — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class Spline +

    + +
    +

    Inheritance Relationships +

    +
    +

    Derived Types +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::Spline
    +
    +
    +

    Spline Management Class

    +

    Subclassed by Splines::ConstantSpline, Splines::CubicSplineBase, Splines::LinearSpline, Splines::QuinticSplineBase

    +
    +

    Constructors

    +
    +
    +inline Spline(string const &name = "Spline")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline virtual ~Spline()
    +
    +
    +

    spline destructor

    +
    +
    + +
    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +inline virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +virtual void build() = 0
    +
    +
    +

    Build a spline using internal stored data

    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    + +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +virtual void reserve(integer npts) = 0
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +virtual void clear() = 0
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    change X-range of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const = 0
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +virtual real_type operator()(real_type x) const = 0
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +virtual real_type D(real_type x) const = 0
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type DD(real_type x) const = 0
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type DDD(real_type x) const = 0
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +inline virtual real_type DDDD(real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type DDDDD(real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const = 0
    +
    +
    +

    Evaluate spline value when interval is known

    +
    +
    + +
    +
    +virtual real_type id_D(integer ni, real_type x) const = 0
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type id_DD(integer ni, real_type x) const = 0
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type id_DDD(integer ni, real_type x) const = 0
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDDD(integer, real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDDDD(integer, real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const = 0
    +
    +
    +

    get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const = 0
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +virtual unsigned type() const = 0
    +
    +
    +

    spline type returned as integer

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00208.html b/docs/api-cpp/class_a00208.html new file mode 100644 index 00000000..1f924f1c --- /dev/null +++ b/docs/api-cpp/class_a00208.html @@ -0,0 +1,920 @@ + + + + + + + + + + Class CubicSplineBase — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class CubicSplineBase +

    + +
    +

    Inheritance Relationships +

    +
    +

    Base Type +

    + +
    +
    +

    Derived Types +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::CubicSplineBase : public Splines::Spline
    +
    +
    +

    cubic spline base class

    +

    Subclassed by Splines::AkimaSpline, Splines::BesselSpline, Splines::CubicSpline, Splines::HermiteSpline, Splines::PchipSpline

    +
    +

    Open/Close

    +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline used in the constructor

    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline bool is_extended_constant() const
    +
    +
    +
    + +
    +
    +inline void make_extended_constant()
    +
    +
    +
    + +
    +
    +inline void make_extended_not_constant()
    +
    +
    +
    + +
    +
    +

    Spline Data Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    last node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Build

    +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +

    Build a spline using a generic container.

    +
    +
    + +
    +
    +virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], y[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +virtual void build() = 0
    +
    +
    +

    Build a spline using internal stored data

    +
    +
    + +
    +
    +virtual void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • gc(“xdata”) vector with the x coordinate of the data

    • +
    • gc(“ydata”) vector with the y coordinate of the data

    • +
    + +
    +
    + +
    +
    +

    Incremental Build

    +
    +
    +void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +

    Manipulate

    +
    +
    +void setOrigin(real_type x0)
    +
    +
    +

    change X-origin of the spline

    +
    +
    + +
    +
    +

    Dump Data

    +
    +
    +void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +

    dump a sample of the spline

    +
    +
    + +
    +
    +

    Evaluation

    +
    +
    +inline virtual real_type DDDD(real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type DDDDD(real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +

    Some aliases

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline virtual real_type id_DDDD(integer, real_type) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline virtual real_type id_DDDDD(integer, real_type) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +

    Get Info

    +
    +
    +inline char const *type_name() const
    +
    +
    +

    spline type returned as a string

    +
    +
    + +
    +
    +virtual unsigned type() const = 0
    +
    +
    +

    spline type returned as integer

    +
    +
    + +
    +
    +string info() const
    +
    +
    +

    String information of the kind and order of the spline

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    Print information of the kind and order of the spline

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline CubicSplineBase(string const &name = "CubicSplineBase")
    +
    +
    +

    Spline constructor.

    +
    +
    + +
    +
    +inline ~CubicSplineBase() override
    +
    +
    +
    + +
    +
    +void copySpline(CubicSplineBase const &S)
    +
    +
    +
    + +
    +
    +inline real_type ypNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y’ component).

    +
    +
    + +
    +
    +void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    Change X-range of the spline.

    +
    +
    + +
    +
    +void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    +
    +
    +

    Use externally allocated memory for npts points.

    +
    +
    + +
    +
    +virtual void y_min_max(integer &i_min_pos, real_type &x_min_pos, real_type &y_min, integer &i_max_pos, real_type &x_max_pos, real_type &y_max) const override
    +
    +
    +

    Search the max and min values of y along the spline with the corresponding x position

    +
    +
    Parameters
    +
    +
      +
    • i_min_pos[out] interval where is the minimum

    • +
    • x_min_pos[out] where is the minimum

    • +
    • y_min[out] the minimum value

    • +
    • i_max_pos[out] interval where is the maximum

    • +
    • x_max_pos[out] where is the maximum

    • +
    • y_max[out] the maximum value

    • +
    +
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x) const override
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +virtual real_type D(real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type DD(real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type DDD(real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual real_type id_eval(integer ni, real_type x) const override
    +
    +
    +

    Evaluate spline value when interval is known

    +
    +
    + +
    +
    +virtual real_type id_D(integer ni, real_type x) const override
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +virtual real_type id_DD(integer ni, real_type x) const override
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +virtual real_type id_DDD(integer ni, real_type x) const override
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const override
    +
    +
    +

    Print spline coefficients

    +
    +
    + +
    +
    +virtual void reserve(integer npts) override
    +
    +
    +

    Allocate memory for npts points

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • incx[in] access elements as x[0], x[incx], x[2*incx],…

    • +
    • y[in] vector of y-coordinates

    • +
    • incy[in] access elements as y[0], y[incy], y[2*incy],…

    • +
    • yp[in] vector of y-defivative

    • +
    • incyp[in] access elements as yp[0], yp[incyp], yp[2*incyy],…

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    • n[in] total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • x[in] vector of x-coordinates

    • +
    • y[in] vector of y-coordinates

    • +
    • yp[in] vector of y’-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +virtual void clear() override
    +
    +
    +

    Delete the support points, empty the spline.

    +
    +
    + +
    +
    +virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    +
    +
    +

    get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +virtual integer order() const override
    +
    +
    +

    Spline order of the piecewise polynomial

    +
    +
    + +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Find interval containing x using binary search.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00212.html b/docs/api-cpp/class_a00212.html new file mode 100644 index 00000000..c15afeaa --- /dev/null +++ b/docs/api-cpp/class_a00212.html @@ -0,0 +1,795 @@ + + + + + + + + + + Class SplineSurf — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class SplineSurf +

    + +
    +

    Inheritance Relationships +

    +
    +

    Derived Types +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::SplineSurf
    +
    +
    +

    Spline Management Class

    +

    Subclassed by Splines::BiCubicSplineBase, Splines::BiQuinticSplineBase, Splines::BilinearSpline

    +
    +

    Public Functions

    +
    +
    +inline SplineSurf(string const &name = "Spline")
    +
    +
    +

    Spline constructor

    +
    +
    + +
    +
    +virtual ~SplineSurf()
    +
    +
    +

    Spline destructor

    +
    +
    + +
    +
    +inline bool is_x_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_closed()
    +
    +
    +

    Setup the surface as closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_opened()
    +
    +
    +

    Setup the surface as open in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_closed()
    +
    +
    +

    Setup the surface as closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_opened()
    +
    +
    +

    Setup the surface as open in the y direction.

    +
    +
    + +
    +
    +inline bool is_x_bounded() const
    +
    +
    +

    Return true if the parameter x assumed bounded. If false the spline is estrapolated for x values outside the range.

    +
    +
    + +
    +
    +inline void make_x_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the x direction.

    +
    +
    + +
    +
    +inline void make_x_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_bounded() const
    +
    +
    +

    Return true if the parameter y assumed bounded. If false the spline is extrapolated for y values outside the range.

    +
    +
    + +
    +
    +inline void make_y_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the y direction

    +
    +
    + +
    +
    +inline void make_y_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline string const &name() const
    +
    +
    +
    + +
    +
    +void clear()
    +
    +
    +

    Cancel the support points, empty the spline.

    +
    +
    + +
    +
    +inline integer numPointX() const
    +
    +
    +

    Return the number of support points of the spline along x direction.

    +
    +
    + +
    +
    +inline integer numPointY() const
    +
    +
    +

    Return the number of support points of the spline along y direction.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type zNode(integer i, integer j) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    Return x-minumum spline value.

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    Return x-maximum spline value.

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    Return y-minumum spline value.

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    Return y-maximum spline value.

    +
    +
    + +
    +
    +inline real_type zMin() const
    +
    +
    +

    Return z-minumum spline value.

    +
    +
    + +
    +
    +inline real_type zMax() const
    +
    +
    +

    Return z-maximum spline value.

    +
    +
    + +
    +
    +void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • x the vector of x-nodes (size nx)

    • +
    • y the vector of y-nodes (size ny)

    • +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    + +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • x – vector of x-coordinates, nx = x.size()

    • +
    • y – vector of y-coordinates, ny = y.size()

    • +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build a spline surface with data

    +

    +
      +
    • z the matrix of z-values, \( z_{ij} = f(x_i,y_j) \)

    • +
    • ldZ leading dimension of matriz z

    • +
    • nx number of nodes in x-direction

    • +
    • ny number of nodes in y-direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • +
    • nx – x-dimension

    • +
    • ny – y-dimension

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline surface using a GenericContainer

    +

    +
      +
    • gc("fortran_storage") if true zdata is stored by column, otherwise by rows

    • +
    • gc("transposed") if true zdata is stored transposed

    • +
    • gc("xdata") vector of mesh point in x direction

    • +
    • gc("ydata") vector of mesh point in y direction

    • +
    • +

      gc("zdata") may be

      +
        +
      • matrix of size nx x ny (ny x nx if data is transposed)

      • +
      • vector of size nx x ny stiring the data.

      • +
      +
    • +
    • nx number of nodes in x-direction the size of vector in x direction

    • +
    • ny number of nodes in y-direction the size of vector in y direction

    • +
    + +

    nodes are equispaced in x and y directions.

    +

    +
    +
             +----------+
    +         |          |  internally data is stored by column
    +index j  ny  zij    |  zij = data[ i*ny + j ]
    +         |          |
    +         +--- nx ---+
    +           index i
    +
    +
    + +

    +
      +
    • fortran_storage is true if matrix z is stored by column

    • +
    • transposed is true means that data are stored transposed

    • +
    + +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +virtual real_type operator()(real_type x, real_type y) const = 0
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +virtual void D(real_type x, real_type y, real_type d[3]) const = 0
    +
    +
    +

    Value and first derivatives at point \( (x,y) \):

    +

    +
      +
    • d[0] value of the spline \( S(x,y) \)

    • +
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dx(real_type x, real_type y) const = 0
    +
    +
    +

    First derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dy(real_type x, real_type y) const = 0
    +
    +
    +

    First derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \).

    +
    +
    + +
    +
    +virtual void DD(real_type x, real_type y, real_type dd[6]) const = 0
    +
    +
    +

    Value, first and second derivatives at point \( (x,y) \):

    +

    +
      +
    • dd[0] value of the spline \( S(x,y) \)

    • +
    • dd[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • +
    • dd[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • +
    • dd[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • +
    • dd[4] mixed second derivative: \( S_{xy}(x,y) \)

    • +
    • dd[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • +
    + +
    +
    + +
    +
    +virtual real_type Dxx(real_type x, real_type y) const = 0
    +
    +
    +

    Second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dxy(real_type x, real_type y) const = 0
    +
    +
    +

    Mixed second derivatives: \( S_{xy}(x,y) \).

    +
    +
    + +
    +
    +virtual real_type Dyy(real_type x, real_type y) const = 0
    +
    +
    +

    Second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \).

    +
    +
    + +
    +
    +inline real_type eval(real_type x, real_type y) const
    +
    +
    +

    Evaluate spline value at point \( (x,y) \).

    +
    +
    + +
    +
    +inline real_type eval_D_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_1(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxx(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_1_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dxy(x,y)

    +
    +
    + +
    +
    +inline real_type eval_D_2_2(real_type x, real_type y) const
    +
    +
    +

    Alias for Dyy(x,y)

    +
    +
    + +
    +
    +virtual void writeToStream(ostream_type &s) const = 0
    +
    +
    +

    Print spline coefficients.

    +
    +
    + +
    +
    +virtual char const *type_name() const = 0
    +
    +
    +

    Return spline type as a string pointer.

    +
    +
    + +
    +
    +virtual string info() const
    +
    +
    +

    Return a string with information about the spline.

    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +

    write a string with information about the spline.

    +
    +
    + +
    +
    +void dump_data(ostream_type &s) const
    +
    +
    +

    Print stored data x, y, and matrix z.

    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00216.html b/docs/api-cpp/class_a00216.html new file mode 100644 index 00000000..f60eacdc --- /dev/null +++ b/docs/api-cpp/class_a00216.html @@ -0,0 +1,741 @@ + + + + + + + + + + Class Spline1D — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class Spline1D +

    + +
    +

    Class Documentation +

    +
    +
    +class Splines::Spline1D
    +
    +
    +

    Spline Management Class.

    +
    +

    Constructors

    +
    +
    +inline Spline1D(std::string const &n)
    +
    +
    +

    Spline constructor

    +
    +
    + +
    +
    +inline ~Spline1D()
    +
    +
    +

    Spline destructor

    +
    +
    + +
    +
    +

    Some aliases.

    +
    +
    +inline real_type eval(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_D(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x) const
    +
    +
    +
    + +
    +
    +

    Evaluate spline value knowing interval.

    +

    Evaluate spline at x.

    +
    +
    +inline real_type id_eval(integer ni, real_type x) const
    +
    +
    +
    + +
    +
    +inline real_type id_D(integer ni, real_type x) const
    +
    +
    +

    First derivative.

    +
    +
    + +
    +
    +inline real_type id_DD(integer ni, real_type x) const
    +
    +
    +

    Second derivative.

    +
    +
    + +
    +
    +inline real_type id_DDD(integer ni, real_type x) const
    +
    +
    +

    Third derivative.

    +
    +
    + +
    +
    +inline real_type id_DDDD(integer ni, real_type x) const
    +
    +
    +

    4th derivative.

    +
    +
    + +
    +
    +inline real_type id_DDDDD(integer ni, real_type x) const
    +
    +
    +

    5th derivative.

    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline string const &name() const
    +
    +
    +
    + +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_opened()
    +
    +
    +
    + +
    +
    +inline bool is_bounded() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_bounded()
    +
    +
    +
    + +
    +
    +inline integer numPoints() const
    +
    +
    +

    Return the number of support points of the spline.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xBegin() const
    +
    +
    +

    Return first node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yBegin() const
    +
    +
    +

    Return first node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xEnd() const
    +
    +
    +

    Return last node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yEnd() const
    +
    +
    +

    Return last node of the spline (y component).

    +
    +
    + +
    +
    +inline void reserve(integer npts)
    +
    +
    +

    Allocate memory for npts points.

    +
    +
    + +
    +
    +inline void pushBack(real_type x, real_type y)
    +
    +
    +

    Add a support point (x,y) to the spline.

    +
    +
    + +
    +
    +inline void dropBack()
    +
    +
    +

    Drop last inserted point of the spline.

    +
    +
    + +
    +
    +inline void build()
    +
    +
    +

    Build a spline.

    +
    +
    + +
    +
    +void setup(GenericContainer const &gc)
    +
    +
    +

    Setup a spline using a GenericContainer

    +

    +
      +
    • +

      gc(“spline_type”)

      +
        +
      • ”constant”

      • +
      • ”linear”

      • +
      • ”cubic”

      • +
      • ”akima”

      • +
      • ”bessel”

      • +
      • ”pchip”

      • +
      • ”quintic”

      • +
      +
    • +
    + +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +void build(SplineType1D tp, real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • tp – spline type

    • +
    • x – vector of x-coordinates

    • +
    • incx – access elements as x[0], x[incx], x[2*incx],…

    • +
    • y – vector of y-coordinates

    • +
    • incy – access elements as y[0], y[incy], x[2*incy],…

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(SplineType1D tp, real_type const *x, real_type const *y, integer n)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • tp – spline type

    • +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    • n – total number of points

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(SplineType1D tp, vector<real_type> const &x, vector<real_type> const &y)
    +
    +
    +

    Build a spline.

    +
    +
    Parameters
    +
    +
      +
    • tp – spline type

    • +
    • x – vector of x-coordinates

    • +
    • y – vector of y-coordinates

    • +
    +
    +
    +
    +
    + +
    +
    +inline void clear()
    +
    +
    +

    Cancel the support points, empty the spline.

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    Return x-minumum spline value.

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    Return x-maximum spline value.

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    Return y-minumum spline value (on the support point of the spline).

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    Return y-maximum spline value (on the support point of the spline).

    +
    +
    + +
    +
    +inline void setOrigin(real_type x0)
    +
    +
    +

    Change X-origin of the spline.

    +
    +
    + +
    +
    +inline void setRange(real_type xmin, real_type xmax)
    +
    +
    +

    Change X-range of the spline.

    +
    +
    + +
    +
    +inline void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    +
    +
    +
    + +
    +
    +inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    +
    +
    +
    + +
    +
    +inline real_type operator()(real_type x) const
    +
    +
    +

    Evaluate spline value at x.

    +
    +
    + +
    +
    +inline real_type D(real_type x) const
    +
    +
    +

    First derivative.

    +
    +
    + +
    +
    +inline real_type DD(real_type x) const
    +
    +
    +

    Second derivative.

    +
    +
    + +
    +
    +inline real_type DDD(real_type x) const
    +
    +
    +

    Third derivative.

    +
    +
    + +
    +
    +inline real_type DDDD(real_type x) const
    +
    +
    +

    4th derivative.

    +
    +
    + +
    +
    +inline real_type DDDDD(real_type x) const
    +
    +
    +

    5th derivative.

    +
    +
    + +
    +
    +inline integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const
    +
    +
    +

    Get the piecewise polinomials of the spline

    +
    +
    + +
    +
    +inline integer order() const
    +
    +
    +
    + +
    +
    +inline void writeToStream(ostream_type &s) const
    +
    +
    +

    Print spline coefficients.

    +
    +
    + +
    +
    +inline char const *type_name() const
    +
    +
    +

    Return spline typename.

    +
    +
    + +
    +
    +inline unsigned type() const
    +
    +
    +

    Return spline type (as number).

    +
    +
    + +
    +
    +inline string info() const
    +
    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00220.html b/docs/api-cpp/class_a00220.html new file mode 100644 index 00000000..053b4bad --- /dev/null +++ b/docs/api-cpp/class_a00220.html @@ -0,0 +1,690 @@ + + + + + + + + + + Class Spline2D — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class Spline2D +

    + +
    +

    Class Documentation +

    +
    +
    +class Splines::Spline2D
    +
    +
    +

    Bi-quintic spline base class

    +
    +

    Constructors

    +
    +
    +inline Spline2D(string const &name = "Spline2D")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +inline virtual ~Spline2D()
    +
    +
    +
    + +
    +
    +inline void build(SplineType2D tp, real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +
    + +
    +
    +inline void build(SplineType2D tp, vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • tp – spline type

    • +
    • x – vector of x-coordinates, nx = x.size()

    • +
    • y – vector of y-coordinates, ny = y.size()

    • +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(SplineType2D tp, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • tp – spline type

    • +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • +
    • ldZ – leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • +
    • nx – x-dimension

    • +
    • ny – y-dimension

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +inline void build(SplineType2D tp, vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    +
    +
    +

    Build surface spline

    +
    +
    Parameters
    +
    +
      +
    • tp – spline type

    • +
    • z – matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • +
    • nx – x-dimension

    • +
    • ny – y-dimension

    • +
    • fortran_storage – if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • +
    • transposed – if true matrix Z is stored transposed

    • +
    +
    +
    +
    +
    + +
    +
    +inline void setup(GenericContainer const &gc)
    +
    +
    +

    Build spline surface using a GenericContainer

    +

    +
      +
    • +

      gc(“spline_type”)

      +
        +
      • ”bilinear” build a bilinear spline surface

      • +
      • ”bicubic” build a spline surface with cubic spline

      • +
      • ”biquintic” build a spline surface with quintic spline

      • +
      • ”Akima” or “akima “build a spline surface with cubic spline using Akima algorithm to avoid obscillation

      • +
      +
    • +
    + +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +

    Get bounds

    +
    +
    +inline real_type xMin() const
    +
    +
    +

    Return x-minumum spline value.

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    Return x-maximum spline value.

    +
    +
    + +
    +
    +inline real_type yMin() const
    +
    +
    +

    Return y-minumum spline value.

    +
    +
    + +
    +
    +inline real_type yMax() const
    +
    +
    +

    Return y-maximum spline value

    +
    +
    + +
    +
    +inline real_type zMin() const
    +
    +
    +

    Return z-minumum spline value

    +
    +
    + +
    +
    +inline real_type zMax() const
    +
    +
    +

    Return z-maximum spline value

    +
    +
    + +
    +
    +

    Evaluate

    +
    +
    +inline real_type operator()(real_type x, real_type y) const
    +
    +
    +

    Evaluate spline value at (x,y).

    +
    +
    + +
    +
    +inline real_type eval(real_type x, real_type y) const
    +
    +
    +

    Evaluate spline value at (x,y).

    +
    +
    + +
    +
    +

    First derivatives:

    +
    +
    +inline void D(real_type x, real_type y, real_type d[3]) const
    +
    +
    +
    + +
    +
    +inline real_type Dx(real_type x, real_type y) const
    +
    +
    +
    + +
    +
    +inline real_type Dy(real_type x, real_type y) const
    +
    +
    +
    + +
    +
    +inline real_type eval_D_1(real_type x, real_type y) const
    +
    +
    +
    + +
    +
    +inline real_type eval_D_2(real_type x, real_type y) const
    +
    +
    +
    + +
    +
    +

    Second derivatives:

    +
    +
    +inline void DD(real_type x, real_type y, real_type dd[6]) const
    +
    +
    +
    + +
    +
    +inline real_type Dxx(real_type x, real_type y) const
    +
    +
    +
    + +
    +
    +inline real_type Dxy(real_type x, real_type y) const
    +
    +
    +
    + +
    +
    +inline real_type Dyy(real_type x, real_type y) const
    +
    +
    +
    + +
    +
    +inline real_type eval_D_1_1(real_type x, real_type y) const
    +
    +
    +
    + +
    +
    +inline real_type eval_D_1_2(real_type x, real_type y) const
    +
    +
    +
    + +
    +
    +inline real_type eval_D_2_2(real_type x, real_type y) const
    +
    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline bool is_x_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the x direction

    +
    +
    + +
    +
    +inline void make_x_closed()
    +
    +
    +

    Setup the surface as closed in the x direction.

    +
    +
    + +
    +
    +inline void make_x_opened()
    +
    +
    +

    Setup the surface as open in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_closed() const
    +
    +
    +

    Return true if the surface is assumed closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_closed()
    +
    +
    +

    Setup the surface as closed in the y direction.

    +
    +
    + +
    +
    +inline void make_y_opened()
    +
    +
    +

    Setup the surface as open in the y direction.

    +
    +
    + +
    +
    +inline bool is_x_bounded() const
    +
    +
    +

    Return true if the parameter x assumed bounded. If false the spline is estrapolated for x values outside the range.

    +
    +
    + +
    +
    +inline void make_x_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the x direction.

    +
    +
    + +
    +
    +inline void make_x_bounded()
    +
    +
    +

    Make the spline surface bounded in the x direction.

    +
    +
    + +
    +
    +inline bool is_y_bounded() const
    +
    +
    +

    Return true if the parameter y assumed bounded. If false the spline is estrapolated for y values outside the range.

    +
    +
    + +
    +
    +inline void make_y_unbounded()
    +
    +
    +

    Make the spline surface unbounded in the y direction

    +
    +
    + +
    +
    +inline void make_y_bounded()
    +
    +
    +

    Make the spline surface bounded in the y direction

    +
    +
    + +
    +
    +inline string const &name() const
    +
    +
    +

    Return the name of the spline surface assigned if was constructed.

    +
    +
    + +
    +
    +inline void clear()
    +
    +
    +

    Cancel the support points, empty the spline.

    +
    +
    + +
    +
    +inline integer numPointX() const
    +
    +
    +

    Return the number of support points of the spline along x direction.

    +
    +
    + +
    +
    +inline integer numPointY() const
    +
    +
    +

    Return the number of support points of the spline along y direction.

    +
    +
    + +
    +
    +inline real_type xNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer i) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type zNode(integer i, integer j) const
    +
    +
    +

    Return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline void writeToStream(ostream_type &s) const
    +
    +
    +

    Print spline coefficients.

    +
    +
    + +
    +
    +inline char const *type_name() const
    +
    +
    +

    Return spline typename

    +
    +
    + +
    +
    +inline string info() const
    +
    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +
    + +
    +
    +inline void dump_data(ostream_type &stream) const
    +
    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00224.html b/docs/api-cpp/class_a00224.html new file mode 100644 index 00000000..ed277bed --- /dev/null +++ b/docs/api-cpp/class_a00224.html @@ -0,0 +1,1340 @@ + + + + + + + + + + Class SplineSet — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class SplineSet +

    + +
    +

    Nested Relationships +

    +
    +

    Nested Types +

    + +
    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::SplineSet
    +
    +
    +

    Splines Management Class.

    +
    +

    Constructors

    +
    +
    +SplineSet(string const &name = "SplineSet")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +virtual ~SplineSet()
    +
    +
    +

    spline destructor

    +
    +
    + +
    +
    +

    Info

    +
    +
    +inline string const &name() const
    +
    +
    +
    + +
    +
    +inline string const &header(integer i) const
    +
    +
    +
    + +
    +
    +void get_headers(std::vector<std::string> &names) const
    +
    +
    +

    fill a vector of strings with the names of the splines

    +
    +
    + +
    +
    +string name_list() const
    +
    +
    +
    + +
    +
    +inline int isMonotone(integer i) const
    +
    +
    +
    + +
    +
    +inline integer numPoints() const
    +
    +
    +

    return the number of support points of the splines

    +
    +
    + +
    +
    +inline integer numSplines() const
    +
    +
    +

    return the number splines in the spline set

    +
    +
    + +
    +
    +integer getPosition(char const *hdr) const
    +
    +
    +

    return the column with header(i) == hdr, return -1 if not found

    +
    +
    + +
    +
    +inline real_type const *xNodes() const
    +
    +
    +

    return the vector of values of x-nodes

    +
    +
    + +
    +
    +real_type const *yNodes(integer i) const
    +
    +
    +

    return the vector of values of x-nodes

    +
    +
    + +
    +
    +inline real_type xNode(integer npt) const
    +
    +
    +

    return the i-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer npt, integer spl) const
    +
    +
    +

    return the i-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    return x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    return x-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin(integer spl) const
    +
    +
    +

    return y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax(integer spl) const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +inline real_type yMin(char const *spl) const
    +
    +
    +

    return y-minumum spline value

    +
    +
    + +
    +
    +inline real_type yMax(char const *spl) const
    +
    +
    +

    return y-maximum spline value

    +
    +
    + +
    +
    +

    Access splines

    +
    +
    +Spline *getSpline(integer i) const
    +
    +
    +

    Return pointer to the i-th spline.

    +
    +
    + +
    +
    +inline Spline *getSpline(char const *hdr) const
    +
    +
    +

    Return pointer to the i-th spline.

    +
    +
    + +
    +
    +

    Evaluate

    +
    +
    +inline real_type operator()(real_type x, integer spl) const
    +
    +
    +

    Evaluate spline value.

    +
    +
    + +
    +
    +inline real_type eval(real_type x, integer spl) const
    +
    +
    +
    + +
    +
    +inline real_type D(real_type x, integer spl) const
    +
    +
    +

    First derivative.

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x, integer spl) const
    +
    +
    +
    + +
    +
    +inline real_type DD(real_type x, integer spl) const
    +
    +
    +

    Second derivative.

    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x, integer spl) const
    +
    +
    +
    + +
    +
    +inline real_type DDD(real_type x, integer spl) const
    +
    +
    +

    Third derivative.

    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x, integer spl) const
    +
    +
    +
    + +
    +
    +inline real_type DDDD(real_type x, integer spl) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x, integer spl) const
    +
    +
    +
    + +
    +
    +inline real_type DDDDD(real_type x, integer spl) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x, integer spl) const
    +
    +
    +
    + +
    +
    +inline real_type eval(real_type x, char const *name) const
    +
    +
    +

    Evaluate spline value.

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x, char const *name) const
    +
    +
    +

    First derivative.

    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x, char const *name) const
    +
    +
    +

    Second derivative.

    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x, char const *name) const
    +
    +
    +

    Third derivative.

    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x, char const *name) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x, char const *name) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +

    Evaluate to std vector

    +
    +
    +void eval(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate all the splines at x

    +
    +
    + +
    +
    +void eval_D(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the fist derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DD(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the second derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDD(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the third derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDDD(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the 4th derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDDDD(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the 5th derivative of all the splines at x

    +
    +
    + +
    +
    +

    Evaluate to vector

    +
    +
    +void eval(real_type x, real_type *const vals, integer incy = 1) const
    +
    +
    +

    Evaluate all the splines at x

    +
    +
    + +
    +
    +void eval_D(real_type x, real_type *const vals, integer incy = 1) const
    +
    +
    +

    Evaluate the fist derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DD(real_type x, real_type *const vals, integer incy = 1) const
    +
    +
    +

    Evaluate the second derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDD(real_type x, real_type *const vals, integer incy = 1) const
    +
    +
    +

    Evaluate the third derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDDD(real_type x, real_type *const vals, integer incy = 1) const
    +
    +
    +

    Evaluate the 4th derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDDDD(real_type x, real_type *const vals, integer incy = 1) const
    +
    +
    +

    Evaluate the 5th derivative of all the splines at x

    +
    +
    + +
    +
    +

    Evaluate using another spline as independent

    +
    +
    +void eval2(integer spl, real_type zeta, vector<real_type> &vals) const
    +
    +
    +

    Evaluate all the splines at zeta using spline[spl] as independent

    +
    +
    + +
    +
    +void eval2_D(integer spl, real_type zeta, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the fist derivative of all the splines at zeta using spline[spl] as independent

    +
    +
    + +
    +
    +void eval2_DD(integer spl, real_type zeta, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the second derivative of all the splines at zeta using spline[spl] as independent

    +
    +
    + +
    +
    +void eval2_DDD(integer spl, real_type zeta, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the third derivative of all the splines at zeta using spline[spl] as independent

    +
    +
    + +
    +
    +void eval2(integer spl, real_type zeta, real_type *const vals, integer incy = 1) const
    +
    +
    +

    Evaluate all the splines at zeta using spline[spl] as independent

    +
    +
    + +
    +
    +void eval2_D(integer spl, real_type zeta, real_type *const vals, integer incy = 1) const
    +
    +
    +

    Evaluate the fist derivative of all the splines at zeta using spline[spl] as independent

    +
    +
    + +
    +
    +void eval2_DD(integer spl, real_type zeta, real_type *const vals, integer incy = 1) const
    +
    +
    +

    Evaluate the second derivative of all the splines at zeta using spline[spl] as independent

    +
    +
    + +
    +
    +void eval2_DDD(integer spl, real_type zeta, real_type *const vals, integer incy = 1) const
    +
    +
    +

    Evaluate the 3rd derivative of all the splines at zeta using spline[spl] as independent

    +
    +
    + +
    +
    +real_type eval2(real_type zeta, integer indep, integer spl) const
    +
    +
    +

    Evaluate the spline spl at zeta using spline indep as independent

    +
    +
    + +
    +
    +real_type eval2_D(real_type zeta, integer indep, integer spl) const
    +
    +
    +

    Evaluate first derivative of the spline spl at zeta using spline indep as independent

    +
    +
    + +
    +
    +real_type eval2_DD(real_type zeta, integer indep, integer spl) const
    +
    +
    +

    Evaluate second derivative of the spline spl at zeta using spline indep as independent

    +
    +
    + +
    +
    +real_type eval2_DDD(real_type zeta, integer indep, integer spl) const
    +
    +
    +

    Evaluate third derivative of the spline spl at zeta using spline indep as independent

    +
    +
    + +
    +
    +

    Unnamed Group

    +
    +
    +real_type eval2(real_type zeta, char const *indep, char const *name) const
    +
    +
    +

    Evaluate the spline name at zeta using spline indep as independent

    +
    +
    + +
    +
    +real_type eval2_D(real_type zeta, char const *indep, char const *name) const
    +
    +
    +

    Evaluate first derivative of the spline name at zeta using spline indep as independent

    +
    +
    + +
    +
    +real_type eval2_DD(real_type zeta, char const *indep, char const *name) const
    +
    +
    +

    Evaluate second derivative of the spline name at zeta using spline indep as independent

    +
    +
    + +
    +
    +real_type eval2_DDD(real_type zeta, char const *indep, char const *name) const
    +
    +
    +

    Evaluate third derivative of the spline name at zeta using spline indep as independent

    +
    +
    + +
    +
    +

    Evaluate onto a vector

    +
    +
    +void eval(real_type x, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x and fill a map of values in a GenericContainer

    +
    +
    + +
    +
    +void eval(vec_real_type const &vec, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer

    +
    +
    + +
    +
    +void eval(real_type x, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x and fill a map of values in a GenericContainer with keys in columns

    +
    +
    + +
    +
    +void eval(vec_real_type const &vec, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer with keys in columns

    +
    +
    + +
    +
    +

    Evaluate to GenericContainer using another spline as independent

    +
    +
    +void eval2(real_type zeta, integer indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +void eval2(vec_real_type const &zetas, integer indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +void eval2(real_type zeta, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +void eval2(vec_real_type const &zetas, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2(real_type zeta, char const *indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2(vec_real_type const &zetas, char const *indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2(real_type zeta, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2(vec_real_type const &zetas, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +

    Evaluate derivative into a Generic Container

    +
    +
    +void eval_D(real_type x, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x and fill a map of values in a GenericContainer

    +
    +
    + +
    +
    +void eval_D(vec_real_type const &vec, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer

    +
    +
    + +
    +
    +void eval_D(real_type x, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x and fill a map of values in a GenericContainer with keys in columns

    +
    +
    + +
    +
    +void eval_D(vec_real_type const &vec, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer with keys in columns

    +
    +
    + +
    +
    +

    Evaluate derivative to GenericContainer using another spline as independent

    +
    +
    +void eval2_D(real_type zeta, integer indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +void eval2_D(vec_real_type const &zetas, integer indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +void eval2_D(real_type zeta, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +void eval2_D(vec_real_type const &zetas, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_D(real_type zeta, char const *indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_D(vec_real_type const &zetas, char const *indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_D(real_type zeta, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_D(vec_real_type const &zetas, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +

    Evaluate second derivative to GenericContainer using another spline as independent

    +
    +
    +void eval_DD(real_type x, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x and fill a map of values in a GenericContainer

    +
    +
    + +
    +
    +void eval_DD(vec_real_type const &vec, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer

    +
    +
    + +
    +
    +void eval_DD(real_type x, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x and fill a map of values in a GenericContainer with keys in columns

    +
    +
    + +
    +
    +void eval_DD(vec_real_type const &vec, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer with keys in columns

    +
    +
    + +
    +
    +void eval2_DD(real_type zeta, integer indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +void eval2_DD(vec_real_type const &zetas, integer indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +void eval2_DD(real_type zeta, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +void eval2_DD(vec_real_type const &zetas, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_DD(real_type zeta, char const *indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_DD(vec_real_type const &zetas, char const *indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_DD(real_type zeta, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_DD(vec_real_type const &zetas, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +

    Evaluate third derivative to GenericContainer

    +
    +
    +void eval_DDD(real_type x, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x and fill a map of values in a GenericContainer

    +
    +
    + +
    +
    +void eval_DDD(vec_real_type const &vec, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer

    +
    +
    + +
    +
    +void eval_DDD(real_type x, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x and fill a map of values in a GenericContainer with keys in columns

    +
    +
    + +
    +
    +void eval_DDD(vec_real_type const &vec, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer with keys in columns

    +
    +
    + +
    +
    +

    Evaluate third derivative to GenericContainer using another spline as independent

    +
    +
    +void eval2_DDD(real_type zeta, integer indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +void eval2_DDD(vec_real_type const &zetas, integer indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +void eval2_DDD(real_type zeta, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +void eval2_DDD(vec_real_type const &zetas, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_DDD(real_type zeta, char const *indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_DDD(vec_real_type const &zetas, char const *indep, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_DDD(real_type zeta, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +inline void eval2_DDD(vec_real_type const &zetas, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    +
    +
    +

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    +
    +
    + +
    +
    +

    Build Spline

    +
    +
    +void build(integer nspl, integer npts, char const **headers, SplineType1D const *stype, real_type const *X, real_type const **Y, real_type const **Yp = nullptr)
    +
    +
    +

    Build a set of splines

    +
    +
    Parameters
    +
    +
      +
    • nspl – the number of splines

    • +
    • npts – the number of points of each splines

    • +
    • headers – the names of the splines

    • +
    • stype – the type of each spline

    • +
    • X – pointer to X independent values

    • +
    • Y – vector of nspl pointers to Y depentendent values.

    • +
    • Yp – vector of nspl pointers to Y derivative depentendent values.

    • +
    +
    +
    +
    +
    + +
    +
    +void setup(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline unsigned type() const
    +
    +
    +

    Return spline type (as number)

    +
    +
    + +
    +
    +string info() const
    +
    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +
    + +
    +
    +void dump_table(ostream_type &s, integer num_points) const
    +
    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00228.html b/docs/api-cpp/class_a00228.html new file mode 100644 index 00000000..5006e1b5 --- /dev/null +++ b/docs/api-cpp/class_a00228.html @@ -0,0 +1,253 @@ + + + + + + + + + + Class SplineSet::BinarySearch — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class SplineSet::BinarySearch +

    + +
    +

    Nested Relationships +

    +

    This class is a nested type of Class SplineSet.

    +
    +
    +

    Class Documentation +

    +
    +
    +class Splines::SplineSet::BinarySearch
    +
    +
    +
    +

    Public Types

    +
    +
    +typedef std::pair<std::string, integer> DATA_TYPE
    +
    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +inline BinarySearch()
    +
    +
    +
    + +
    +
    +inline ~BinarySearch()
    +
    +
    +
    + +
    +
    +inline void clear()
    +
    +
    +
    + +
    +
    +inline integer n_elem() const
    +
    +
    +
    + +
    +
    +inline DATA_TYPE const &get_elem(integer i) const
    +
    +
    +
    + +
    +
    +integer search(std::string const &id) const
    +
    +
    +
    + +
    +
    +void insert(std::string const &id, integer position)
    +
    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_a00232.html b/docs/api-cpp/class_a00232.html new file mode 100644 index 00000000..55447372 --- /dev/null +++ b/docs/api-cpp/class_a00232.html @@ -0,0 +1,787 @@ + + + + + + + + + + Class SplineVec — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Class SplineVec +

    + +
    +

    Class Documentation +

    +
    +
    +class Splines::SplineVec
    +
    +
    +

    Splines Management Class

    +
    +

    Constructors

    +
    +
    +SplineVec(string const &name = "SplineVec")
    +
    +
    +

    spline constructor

    +
    +
    + +
    +
    +virtual ~SplineVec()
    +
    +
    +

    spline destructor

    +
    +
    + +
    +
    +

    Open/Close

    +
    +
    +inline bool is_closed() const
    +
    +
    +
    + +
    +
    +inline void make_closed()
    +
    +
    +
    + +
    +
    +inline void make_open()
    +
    +
    +
    + +
    +
    +inline bool can_extend() const
    +
    +
    +
    + +
    +
    +inline void make_unbounded()
    +
    +
    +
    + +
    +
    +inline void make_buonded()
    +
    +
    +
    + +
    +
    +

    Info

    +
    +
    +inline integer numPoints() const
    +
    +
    +

    return the number of support points of the splines

    +
    +
    + +
    +
    +inline integer dimension() const
    +
    +
    +

    return the number splines in the spline set

    +
    +
    + +
    +
    +inline real_type const *xNodes() const
    +
    +
    +

    return the vector of values of x-nodes

    +
    +
    + +
    +
    +inline real_type xNode(integer npt) const
    +
    +
    +

    return the npt-th node of the spline (x component).

    +
    +
    + +
    +
    +inline real_type yNode(integer npt, integer j) const
    +
    +
    +

    return the npt-th node of the spline (y component).

    +
    +
    + +
    +
    +inline real_type xMin() const
    +
    +
    +

    return x-minumum spline value

    +
    +
    + +
    +
    +inline real_type xMax() const
    +
    +
    +

    return x-maximum spline value

    +
    +
    + +
    +
    +

    Evaluate

    +
    +
    +real_type operator()(real_type x, integer i) const
    +
    +
    +

    Evaluate spline value

    +
    +
    + +
    +
    +inline real_type eval(real_type x, integer i) const
    +
    +
    +

    Evaluate spline value at segment i

    +
    +
    + +
    +
    +real_type D(real_type x, integer i) const
    +
    +
    +

    First derivative

    +
    +
    + +
    +
    +inline real_type eval_D(real_type x, integer i) const
    +
    +
    +
    + +
    +
    +real_type DD(real_type x, integer i) const
    +
    +
    +

    Second derivative

    +
    +
    + +
    +
    +inline real_type eval_DD(real_type x, integer i) const
    +
    +
    +
    + +
    +
    +real_type DDD(real_type x, integer i) const
    +
    +
    +

    Third derivative

    +
    +
    + +
    +
    +inline real_type eval_DDD(real_type x, integer i) const
    +
    +
    +
    + +
    +
    +real_type DDDD(real_type x, integer i) const
    +
    +
    +

    4th derivative

    +
    +
    + +
    +
    +inline real_type eval_DDDD(real_type x, integer i) const
    +
    +
    +
    + +
    +
    +real_type DDDDD(real_type x, integer i) const
    +
    +
    +

    5th derivative

    +
    +
    + +
    +
    +inline real_type eval_DDDDD(real_type x, integer i) const
    +
    +
    +
    + +
    +
    +void eval(real_type x, real_type *const vals, integer inc) const
    +
    +
    +

    Evaluate all the splines at x

    +
    +
    + +
    +
    +void eval_D(real_type x, real_type *const vals, integer inc) const
    +
    +
    +

    Evaluate the fist derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DD(real_type x, real_type *const vals, integer inc) const
    +
    +
    +

    Evaluate the second derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDD(real_type x, real_type *const vals, integer inc) const
    +
    +
    +

    Evaluate the third derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDDD(real_type x, real_type *const vals, integer inc) const
    +
    +
    +

    Evaluate the 4th derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDDDD(real_type x, real_type *const vals, integer inc) const
    +
    +
    +

    Evaluate the 5th derivative of all the splines at x

    +
    +
    + +
    +
    +void eval(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate all the splines at x

    +
    +
    + +
    +
    +void eval_D(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the fist derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DD(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the second derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDD(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the third derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDDD(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the 4th derivative of all the splines at x

    +
    +
    + +
    +
    +void eval_DDDDD(real_type x, vector<real_type> &vals) const
    +
    +
    +

    Evaluate the 5th derivative of all the splines at x

    +
    +
    + +
    +
    +inline void eval(real_type x, GenericContainer &vals) const
    +
    +
    +

    Evaluate at x and fill a GenericContainer

    +
    +
    + +
    +
    +inline void eval_D(real_type x, GenericContainer &vals) const
    +
    +
    +
    + +
    +
    +inline void eval_DD(real_type x, GenericContainer &vals) const
    +
    +
    +
    + +
    +
    +inline void eval_DDD(real_type x, GenericContainer &vals) const
    +
    +
    +
    + +
    +
    +inline void eval_DDDD(real_type x, GenericContainer &vals) const
    +
    +
    +
    + +
    +
    +inline void eval_DDDDD(real_type x, GenericContainer &vals) const
    +
    +
    +
    + +
    +
    +void eval(vec_real_type const &x, GenericContainer &vals) const
    +
    +
    +

    Evaluate at x (x is a vector with many values) and fill a GenericContainer

    +

    Evaluate at x and fill a GenericContainer

    +
    +
    + +
    +
    +void eval_D(vec_real_type const &x, GenericContainer &vals) const
    +
    +
    +
    + +
    +
    +void eval_DD(vec_real_type const &x, GenericContainer &vals) const
    +
    +
    +
    + +
    +
    +void eval_DDD(vec_real_type const &x, GenericContainer &vals) const
    +
    +
    +
    + +
    +
    +void eval_DDDD(vec_real_type const &x, GenericContainer &vals) const
    +
    +
    +
    + +
    +
    +void eval_DDDDD(vec_real_type const &x, GenericContainer &vals) const
    +
    +
    +
    + +
    +
    +

    Setup Spline

    +
    +
    +void setup(integer dim, integer npts, real_type const **Y)
    +
    +
    +

    Initialize the interpolation point of the splines

    +
    +
    Parameters
    +
    +
      +
    • dim[in] the dimension of the points

    • +
    • npts[in] the numeber of interpolation points

    • +
    • Y[in] the matrix of points values, Y[i] is the pointer to the i-th components

    • +
    +
    +
    +
    +
    + +
    +
    +void setup(integer dim, integer npts, real_type const *Y, integer ldY)
    +
    +
    +

    Initialize the interpolation point of the splines

    +
    +
    Parameters
    +
    +
      +
    • dim[in] the dimension of the points

    • +
    • npts[in] the numeber of interpolation points

    • +
    • Y[in] the matrix of points values

    • +
    • ldY[in] leading dimension of the matrix

    • +
    +
    +
    +
    +
    + +
    +
    +void setKnots(real_type const *X)
    +
    +
    +

    Set the knots of the spline

    +
    +
    + +
    +
    +void setKnotsChordLength()
    +
    +
    +

    Computes the knots of the spline using chordal length

    +
    +
    + +
    +
    +void setKnotsCentripetal()
    +
    +
    +

    Computes the knots of the spline using centripetal approach

    +
    +
    + +
    +
    +void setKnotsFoley()
    +
    +
    +

    Computes the knots of the spline using Foley algorithm

    +
    +
    + +
    +
    +void CatmullRom()
    +
    +
    +

    Computes the spline using Catmull Rom algorithm. Points and nodes must be previously stored.

    +
    +
    + +
    +
    +inline void build(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +

    Public Functions

    +
    +
    +integer search(real_type &x) const
    +
    +
    +

    Search the segment containing x

    +
    +
    + +
    +
    +inline string const &name() const
    +
    +
    +

    Spline name usd in the constructor

    +
    +
    + +
    +
    +real_type curvature(real_type x) const
    +
    +
    +

    Compute spline curvature at x

    +
    +
    + +
    +
    +real_type curvature_D(real_type x) const
    +
    +
    +

    Compute spline curvature derivative at x

    +
    +
    + +
    +
    +void setup(GenericContainer const &gc)
    +
    +
    +
    + +
    +
    +inline unsigned type() const
    +
    +
    +

    Return spline type (as number)

    +
    +
    + +
    +
    +string info() const
    +
    +
    +
    + +
    +
    +inline void info(ostream_type &stream) const
    +
    +
    +
    + +
    +
    +void dump_table(ostream_type &s, integer num_points) const
    +
    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_akima2_dspline.html b/docs/api-cpp/class_splines_1_1_akima2_dspline.html deleted file mode 100644 index 7ceeccc3..00000000 --- a/docs/api-cpp/class_splines_1_1_akima2_dspline.html +++ /dev/null @@ -1,745 +0,0 @@ - - - - - - - - - - Class Akima2Dspline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class Akima2Dspline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::Akima2Dspline : public Splines::BiCubicSplineBase
    -
    -
    -

    Smooth Curve Fitting Based on Local Procedures

    -

    Reference

    -

    -
      -
    • -

      Hiroshi Akima, A Method of Bivariate Interpolation and Smooth Surface Fitting for Irregularly Distributed Data Points.

      -

      ACM Transactions on Mathematical Software, Vol.4, 148-164, 1978.

      -
    • -
    - -
    -

    Public Functions

    -
    -
    -inline Akima2Dspline(string const &name = "Spline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~Akima2Dspline() override
    -
    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual char const *type_name() const override
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -inline real_type DxNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DxyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -virtual real_type operator()(real_type x, real_type y) const override
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -virtual void D(real_type x, real_type y, real_type d[3]) const override
    -
    -
    -

    value and first derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dx(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dy(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \)

    -
    -
    - -
    -
    -virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    -
    -
    -

    value, first and second derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    • d[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • -
    • d[4] mixed second derivative: \( S_{xy}(x,y) \)

    • -
    • d[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dxx(real_type x, real_type y) const override
    -
    -
    -

    second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dxy(real_type x, real_type y) const override
    -
    -
    -

    mixed second derivatives: \( S_{xy}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dyy(real_type x, real_type y) const override
    -
    -
    -

    second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \)

    -
    -
    - -
    -
    -inline bool is_x_closed() const
    -
    -
    -
    - -
    -
    -inline void make_x_closed()
    -
    -
    -
    - -
    -
    -inline void make_x_opened()
    -
    -
    -
    - -
    -
    -inline bool is_y_closed() const
    -
    -
    -
    - -
    -
    -inline void make_y_closed()
    -
    -
    -
    - -
    -
    -inline void make_y_opened()
    -
    -
    -
    - -
    -
    -inline bool is_x_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_x_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_x_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_y_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_y_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_y_bounded()
    -
    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -void clear()
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -inline integer numPointX() const
    -
    -
    -

    return the number of support points of the spline along x direction

    -
    -
    - -
    -
    -inline integer numPointY() const
    -
    -
    -

    return the number of support points of the spline along y direction

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type zNode(integer i, integer j) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -inline real_type zMin() const
    -
    -
    -

    return z-minumum spline value

    -
    -
    - -
    -
    -inline real_type zMax() const
    -
    -
    -

    return z-maximum spline value

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], x[2*incy],…

    • -
    • z: matrix of z-values

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: total number of points in direction x

    • -
    • ny: total number of points in direction y

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*ldZ] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates, nx = x.size()

    • -
    • y: vector of y-coordinates, ny = y.size()

    • -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline real_type eval(real_type x, real_type y) const
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -inline real_type eval_D_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dyy(x,y)

    -
    -
    - -
    -
    -virtual string info() const
    -
    -
    -

    return a string with information about the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    write a string with information about the spline.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_akima_spline.html b/docs/api-cpp/class_splines_1_1_akima_spline.html deleted file mode 100644 index 2e95aabc..00000000 --- a/docs/api-cpp/class_splines_1_1_akima_spline.html +++ /dev/null @@ -1,904 +0,0 @@ - - - - - - - - - - Class AkimaSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class AkimaSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::AkimaSpline : public Splines::CubicSplineBase
    -
    -
    -

    Smooth Curve Fitting Based on Local Procedures

    -

    Reference

    -

    -
      -
    • Hiroshi Akima, Journal of the ACM, Vol.17, No. 4, 589-602, 1970.

    • -
    - -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -inline virtual real_type DDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type DDDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline virtual real_type id_DDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type id_DDDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline AkimaSpline(string const &name = "AkimaSpline")
    -
    -
    -

    Construct an empty spline of type AkimaSpline

    -
    -
    - -
    -
    -inline ~AkimaSpline() override
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -inline virtual unsigned type() const override
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -virtual void build() override
    -
    -
    -

    Build a spline using internal stored data

    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc) override
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -void copySpline(CubicSplineBase const &S)
    -
    -
    -
    - -
    -
    -inline real_type ypNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y’ component).

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    -
    -
    -

    Use externally allocated memory for npts points.

    -
    -
    - -
    -
    -virtual real_type operator()(real_type x) const override
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -virtual real_type D(real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type DD(real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type DDD(real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const override
    -
    -
    -

    Evaluate spline value when interval is known.

    -
    -
    - -
    -
    -virtual real_type id_D(integer ni, real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type id_DD(integer ni, real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDD(integer ni, real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual void reserve(integer npts) override
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • yp: vector of y-defivative

    • -
    • incyp: access elements as yp[0], yp[incyp], yp[2*incyy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual void clear() override
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const override
    -
    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_bessel_spline.html b/docs/api-cpp/class_splines_1_1_bessel_spline.html deleted file mode 100644 index 8af9c927..00000000 --- a/docs/api-cpp/class_splines_1_1_bessel_spline.html +++ /dev/null @@ -1,898 +0,0 @@ - - - - - - - - - - Class BesselSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class BesselSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::BesselSpline : public Splines::CubicSplineBase
    -
    -
    -

    Bessel spline class.

    -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -inline virtual real_type DDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type DDDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline virtual real_type id_DDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type id_DDDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline BesselSpline(string const &name = "BesselSpline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~BesselSpline() override
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -inline virtual unsigned type() const override
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -virtual void build() override
    -
    -
    -

    Build a spline using internal stored data

    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc) override
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -void copySpline(CubicSplineBase const &S)
    -
    -
    -
    - -
    -
    -inline real_type ypNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y’ component).

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    -
    -
    -

    Use externally allocated memory for npts points.

    -
    -
    - -
    -
    -virtual real_type operator()(real_type x) const override
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -virtual real_type D(real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type DD(real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type DDD(real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const override
    -
    -
    -

    Evaluate spline value when interval is known.

    -
    -
    - -
    -
    -virtual real_type id_D(integer ni, real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type id_DD(integer ni, real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDD(integer ni, real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual void reserve(integer npts) override
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • yp: vector of y-defivative

    • -
    • incyp: access elements as yp[0], yp[incyp], yp[2*incyy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual void clear() override
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const override
    -
    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_bi_cubic_spline.html b/docs/api-cpp/class_splines_1_1_bi_cubic_spline.html deleted file mode 100644 index 75bb7575..00000000 --- a/docs/api-cpp/class_splines_1_1_bi_cubic_spline.html +++ /dev/null @@ -1,736 +0,0 @@ - - - - - - - - - - Class BiCubicSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class BiCubicSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::BiCubicSpline : public Splines::BiCubicSplineBase
    -
    -
    -

    cubic spline base class

    -
    -

    Public Functions

    -
    -
    -inline BiCubicSpline(string const &name = "Spline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~BiCubicSpline() override
    -
    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual char const *type_name() const override
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -inline real_type DxNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DxyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -virtual real_type operator()(real_type x, real_type y) const override
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -virtual void D(real_type x, real_type y, real_type d[3]) const override
    -
    -
    -

    value and first derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dx(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dy(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \)

    -
    -
    - -
    -
    -virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    -
    -
    -

    value, first and second derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    • d[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • -
    • d[4] mixed second derivative: \( S_{xy}(x,y) \)

    • -
    • d[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dxx(real_type x, real_type y) const override
    -
    -
    -

    second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dxy(real_type x, real_type y) const override
    -
    -
    -

    mixed second derivatives: \( S_{xy}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dyy(real_type x, real_type y) const override
    -
    -
    -

    second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \)

    -
    -
    - -
    -
    -inline bool is_x_closed() const
    -
    -
    -
    - -
    -
    -inline void make_x_closed()
    -
    -
    -
    - -
    -
    -inline void make_x_opened()
    -
    -
    -
    - -
    -
    -inline bool is_y_closed() const
    -
    -
    -
    - -
    -
    -inline void make_y_closed()
    -
    -
    -
    - -
    -
    -inline void make_y_opened()
    -
    -
    -
    - -
    -
    -inline bool is_x_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_x_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_x_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_y_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_y_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_y_bounded()
    -
    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -void clear()
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -inline integer numPointX() const
    -
    -
    -

    return the number of support points of the spline along x direction

    -
    -
    - -
    -
    -inline integer numPointY() const
    -
    -
    -

    return the number of support points of the spline along y direction

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type zNode(integer i, integer j) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -inline real_type zMin() const
    -
    -
    -

    return z-minumum spline value

    -
    -
    - -
    -
    -inline real_type zMax() const
    -
    -
    -

    return z-maximum spline value

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], x[2*incy],…

    • -
    • z: matrix of z-values

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: total number of points in direction x

    • -
    • ny: total number of points in direction y

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*ldZ] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates, nx = x.size()

    • -
    • y: vector of y-coordinates, ny = y.size()

    • -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline real_type eval(real_type x, real_type y) const
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -inline real_type eval_D_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dyy(x,y)

    -
    -
    - -
    -
    -virtual string info() const
    -
    -
    -

    return a string with information about the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    write a string with information about the spline.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_bi_cubic_spline_base.html b/docs/api-cpp/class_splines_1_1_bi_cubic_spline_base.html deleted file mode 100644 index 0dd6ca23..00000000 --- a/docs/api-cpp/class_splines_1_1_bi_cubic_spline_base.html +++ /dev/null @@ -1,746 +0,0 @@ - - - - - - - - - - Class BiCubicSplineBase — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class BiCubicSplineBase -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -

    Derived Types -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::BiCubicSplineBase : public Splines::SplineSurf
    -
    -
    -

    Bi-cubic spline base class.

    -

    Subclassed by Splines::Akima2Dspline, Splines::BiCubicSpline

    -
    -

    Public Functions

    -
    -
    -inline BiCubicSplineBase(string const &name = "Spline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~BiCubicSplineBase() override
    -
    -
    -
    - -
    -
    -inline real_type DxNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DxyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -virtual real_type operator()(real_type x, real_type y) const override
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -virtual void D(real_type x, real_type y, real_type d[3]) const override
    -
    -
    -

    value and first derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dx(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dy(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \)

    -
    -
    - -
    -
    -virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    -
    -
    -

    value, first and second derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    • d[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • -
    • d[4] mixed second derivative: \( S_{xy}(x,y) \)

    • -
    • d[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dxx(real_type x, real_type y) const override
    -
    -
    -

    second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dxy(real_type x, real_type y) const override
    -
    -
    -

    mixed second derivatives: \( S_{xy}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dyy(real_type x, real_type y) const override
    -
    -
    -

    second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \)

    -
    -
    - -
    -
    -inline bool is_x_closed() const
    -
    -
    -
    - -
    -
    -inline void make_x_closed()
    -
    -
    -
    - -
    -
    -inline void make_x_opened()
    -
    -
    -
    - -
    -
    -inline bool is_y_closed() const
    -
    -
    -
    - -
    -
    -inline void make_y_closed()
    -
    -
    -
    - -
    -
    -inline void make_y_opened()
    -
    -
    -
    - -
    -
    -inline bool is_x_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_x_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_x_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_y_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_y_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_y_bounded()
    -
    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -void clear()
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -inline integer numPointX() const
    -
    -
    -

    return the number of support points of the spline along x direction

    -
    -
    - -
    -
    -inline integer numPointY() const
    -
    -
    -

    return the number of support points of the spline along y direction

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type zNode(integer i, integer j) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -inline real_type zMin() const
    -
    -
    -

    return z-minumum spline value

    -
    -
    - -
    -
    -inline real_type zMax() const
    -
    -
    -

    return z-maximum spline value

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], x[2*incy],…

    • -
    • z: matrix of z-values

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: total number of points in direction x

    • -
    • ny: total number of points in direction y

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*ldZ] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates, nx = x.size()

    • -
    • y: vector of y-coordinates, ny = y.size()

    • -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline real_type eval(real_type x, real_type y) const
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -inline real_type eval_D_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dyy(x,y)

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const = 0
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual char const *type_name() const = 0
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -virtual string info() const
    -
    -
    -

    return a string with information about the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    write a string with information about the spline.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_bi_quintic_spline.html b/docs/api-cpp/class_splines_1_1_bi_quintic_spline.html deleted file mode 100644 index 28ae1ef7..00000000 --- a/docs/api-cpp/class_splines_1_1_bi_quintic_spline.html +++ /dev/null @@ -1,750 +0,0 @@ - - - - - - - - - - Class BiQuinticSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class BiQuinticSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::BiQuinticSpline : public Splines::BiQuinticSplineBase
    -
    -
    -

    cubic spline base class

    -
    -

    Public Functions

    -
    -
    -inline BiQuinticSpline(string const &name = "Spline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~BiQuinticSpline() override
    -
    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual char const *type_name() const override
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -inline real_type DxNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DxxNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DyyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DxyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -virtual real_type operator()(real_type x, real_type y) const override
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -virtual void D(real_type x, real_type y, real_type d[3]) const override
    -
    -
    -

    value and first derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dx(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dy(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \)

    -
    -
    - -
    -
    -virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    -
    -
    -

    value, first and second derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    • d[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • -
    • d[4] mixed second derivative: \( S_{xy}(x,y) \)

    • -
    • d[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dxx(real_type x, real_type y) const override
    -
    -
    -

    second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dxy(real_type x, real_type y) const override
    -
    -
    -

    mixed second derivatives: \( S_{xy}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dyy(real_type x, real_type y) const override
    -
    -
    -

    second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \)

    -
    -
    - -
    -
    -inline bool is_x_closed() const
    -
    -
    -
    - -
    -
    -inline void make_x_closed()
    -
    -
    -
    - -
    -
    -inline void make_x_opened()
    -
    -
    -
    - -
    -
    -inline bool is_y_closed() const
    -
    -
    -
    - -
    -
    -inline void make_y_closed()
    -
    -
    -
    - -
    -
    -inline void make_y_opened()
    -
    -
    -
    - -
    -
    -inline bool is_x_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_x_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_x_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_y_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_y_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_y_bounded()
    -
    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -void clear()
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -inline integer numPointX() const
    -
    -
    -

    return the number of support points of the spline along x direction

    -
    -
    - -
    -
    -inline integer numPointY() const
    -
    -
    -

    return the number of support points of the spline along y direction

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type zNode(integer i, integer j) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -inline real_type zMin() const
    -
    -
    -

    return z-minumum spline value

    -
    -
    - -
    -
    -inline real_type zMax() const
    -
    -
    -

    return z-maximum spline value

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], x[2*incy],…

    • -
    • z: matrix of z-values

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: total number of points in direction x

    • -
    • ny: total number of points in direction y

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*ldZ] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates, nx = x.size()

    • -
    • y: vector of y-coordinates, ny = y.size()

    • -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline real_type eval(real_type x, real_type y) const
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -inline real_type eval_D_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dyy(x,y)

    -
    -
    - -
    -
    -virtual string info() const
    -
    -
    -

    return a string with information about the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    write a string with information about the spline.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_bi_quintic_spline_base.html b/docs/api-cpp/class_splines_1_1_bi_quintic_spline_base.html deleted file mode 100644 index 9cf836e6..00000000 --- a/docs/api-cpp/class_splines_1_1_bi_quintic_spline_base.html +++ /dev/null @@ -1,759 +0,0 @@ - - - - - - - - - - Class BiQuinticSplineBase — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class BiQuinticSplineBase -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -

    Derived Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::BiQuinticSplineBase : public Splines::SplineSurf
    -
    -
    -

    Bi-quintic spline base class.

    -

    Subclassed by Splines::BiQuinticSpline

    -
    -

    Public Functions

    -
    -
    -inline BiQuinticSplineBase(string const &name = "Spline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~BiQuinticSplineBase() override
    -
    -
    -
    - -
    -
    -inline real_type DxNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DxxNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DyyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -inline real_type DxyNode(integer i, integer j) const
    -
    -
    -
    - -
    -
    -virtual real_type operator()(real_type x, real_type y) const override
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -virtual void D(real_type x, real_type y, real_type d[3]) const override
    -
    -
    -

    value and first derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dx(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dy(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \)

    -
    -
    - -
    -
    -virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    -
    -
    -

    value, first and second derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    • d[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • -
    • d[4] mixed second derivative: \( S_{xy}(x,y) \)

    • -
    • d[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dxx(real_type x, real_type y) const override
    -
    -
    -

    second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dxy(real_type x, real_type y) const override
    -
    -
    -

    mixed second derivatives: \( S_{xy}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dyy(real_type x, real_type y) const override
    -
    -
    -

    second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \)

    -
    -
    - -
    -
    -inline bool is_x_closed() const
    -
    -
    -
    - -
    -
    -inline void make_x_closed()
    -
    -
    -
    - -
    -
    -inline void make_x_opened()
    -
    -
    -
    - -
    -
    -inline bool is_y_closed() const
    -
    -
    -
    - -
    -
    -inline void make_y_closed()
    -
    -
    -
    - -
    -
    -inline void make_y_opened()
    -
    -
    -
    - -
    -
    -inline bool is_x_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_x_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_x_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_y_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_y_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_y_bounded()
    -
    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -void clear()
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -inline integer numPointX() const
    -
    -
    -

    return the number of support points of the spline along x direction

    -
    -
    - -
    -
    -inline integer numPointY() const
    -
    -
    -

    return the number of support points of the spline along y direction

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type zNode(integer i, integer j) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -inline real_type zMin() const
    -
    -
    -

    return z-minumum spline value

    -
    -
    - -
    -
    -inline real_type zMax() const
    -
    -
    -

    return z-maximum spline value

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], x[2*incy],…

    • -
    • z: matrix of z-values

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: total number of points in direction x

    • -
    • ny: total number of points in direction y

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*ldZ] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates, nx = x.size()

    • -
    • y: vector of y-coordinates, ny = y.size()

    • -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline real_type eval(real_type x, real_type y) const
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -inline real_type eval_D_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dyy(x,y)

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const = 0
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual char const *type_name() const = 0
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -virtual string info() const
    -
    -
    -

    return a string with information about the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    write a string with information about the spline.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_bilinear_spline.html b/docs/api-cpp/class_splines_1_1_bilinear_spline.html deleted file mode 100644 index 5a37af85..00000000 --- a/docs/api-cpp/class_splines_1_1_bilinear_spline.html +++ /dev/null @@ -1,715 +0,0 @@ - - - - - - - - - - Class BilinearSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class BilinearSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::BilinearSpline : public Splines::SplineSurf
    -
    -
    -

    bilinear spline base class

    -
    -

    Public Functions

    -
    -
    -inline BilinearSpline(string const &name = "Spline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~BilinearSpline() override
    -
    -
    -
    - -
    -
    -virtual real_type operator()(real_type x, real_type y) const override
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -virtual void D(real_type x, real_type y, real_type d[3]) const override
    -
    -
    -

    value and first derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dx(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dy(real_type x, real_type y) const override
    -
    -
    -

    first derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \)

    -
    -
    - -
    -
    -virtual void DD(real_type x, real_type y, real_type dd[6]) const override
    -
    -
    -

    value, first and second derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    • d[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • -
    • d[4] mixed second derivative: \( S_{xy}(x,y) \)

    • -
    • d[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • -
    - -
    -
    - -
    -
    -inline virtual real_type Dxx(real_type, real_type) const override
    -
    -
    -

    second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \)

    -
    -
    - -
    -
    -inline virtual real_type Dxy(real_type, real_type) const override
    -
    -
    -

    mixed second derivatives: \( S_{xy}(x,y) \)

    -
    -
    - -
    -
    -inline virtual real_type Dyy(real_type, real_type) const override
    -
    -
    -

    second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \)

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual char const *type_name() const override
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -inline bool is_x_closed() const
    -
    -
    -
    - -
    -
    -inline void make_x_closed()
    -
    -
    -
    - -
    -
    -inline void make_x_opened()
    -
    -
    -
    - -
    -
    -inline bool is_y_closed() const
    -
    -
    -
    - -
    -
    -inline void make_y_closed()
    -
    -
    -
    - -
    -
    -inline void make_y_opened()
    -
    -
    -
    - -
    -
    -inline bool is_x_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_x_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_x_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_y_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_y_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_y_bounded()
    -
    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -void clear()
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -inline integer numPointX() const
    -
    -
    -

    return the number of support points of the spline along x direction

    -
    -
    - -
    -
    -inline integer numPointY() const
    -
    -
    -

    return the number of support points of the spline along y direction

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type zNode(integer i, integer j) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -inline real_type zMin() const
    -
    -
    -

    return z-minumum spline value

    -
    -
    - -
    -
    -inline real_type zMax() const
    -
    -
    -

    return z-maximum spline value

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], x[2*incy],…

    • -
    • z: matrix of z-values

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: total number of points in direction x

    • -
    • ny: total number of points in direction y

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*ldZ] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates, nx = x.size()

    • -
    • y: vector of y-coordinates, ny = y.size()

    • -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline real_type eval(real_type x, real_type y) const
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -inline real_type eval_D_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dyy(x,y)

    -
    -
    - -
    -
    -virtual string info() const
    -
    -
    -

    return a string with information about the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    write a string with information about the spline.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_constant_spline.html b/docs/api-cpp/class_splines_1_1_constant_spline.html deleted file mode 100644 index dc64e512..00000000 --- a/docs/api-cpp/class_splines_1_1_constant_spline.html +++ /dev/null @@ -1,810 +0,0 @@ - - - - - - - - - - Class ConstantSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class ConstantSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::ConstantSpline : public Splines::Spline
    -
    -
    -

    Picewise constants spline class.

    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -inline virtual real_type DDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type DDDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline virtual real_type id_DDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type id_DDDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline ConstantSpline(string const &name = "ConstantSpline")
    -
    -
    -
    - -
    -
    -inline ~ConstantSpline() override
    -
    -
    -
    - -
    -
    -void reserve_external(integer n, real_type *&p_x, real_type *&p_y)
    -
    -
    -

    Use externally allocated memory for npts points.

    -
    -
    - -
    -
    -inline virtual void build() override
    -
    -
    -

    Build a spline using internal stored data

    -
    -
    - -
    -
    -virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n) override
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual real_type operator()(real_type x) const override
    -
    -
    -

    Evalute spline value at x

    -
    -
    - -
    -
    -inline virtual real_type D(real_type) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline virtual real_type DD(real_type) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline virtual real_type DDD(real_type) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const override
    -
    -
    -

    Evalute spline value at x

    -
    -
    - -
    -
    -inline virtual real_type id_D(integer, real_type) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline virtual real_type id_DD(integer, real_type) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline virtual real_type id_DDD(integer, real_type) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type&) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -inline virtual unsigned type() const override
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -virtual void reserve(integer npts) override
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -virtual void clear() override
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const override
    -
    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc) override
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_cubic_spline.html b/docs/api-cpp/class_splines_1_1_cubic_spline.html deleted file mode 100644 index 0390c51e..00000000 --- a/docs/api-cpp/class_splines_1_1_cubic_spline.html +++ /dev/null @@ -1,934 +0,0 @@ - - - - - - - - - - Class CubicSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class CubicSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::CubicSpline : public Splines::CubicSplineBase
    -
    -
    -

    Cubic Spline Management Class.

    -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -inline virtual real_type DDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type DDDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline virtual real_type id_DDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type id_DDDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline CubicSpline(string const &name = "CubicSpline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~CubicSpline() override
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -inline void setInitialBC(CUBIC_SPLINE_TYPE_BC bc0)
    -
    -
    -

    Set the boudary consition for initial point

    -
    -
    Parameters
    -
    -
      -
    • bc0: initial boundary condition.

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void setFinalBC(CUBIC_SPLINE_TYPE_BC bcn)
    -
    -
    -

    Set the boudary consition for final point

    -
    -
    Parameters
    -
    -
      -
    • bcn: final boundary condition.

    • -
    -
    -
    - -
    -
    - -
    -
    -inline virtual unsigned type() const override
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -virtual void build() override
    -
    -
    -

    Build a spline using internal stored data

    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc) override
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -void copySpline(CubicSplineBase const &S)
    -
    -
    -
    - -
    -
    -inline real_type ypNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y’ component).

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    -
    -
    -

    Use externally allocated memory for npts points.

    -
    -
    - -
    -
    -virtual real_type operator()(real_type x) const override
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -virtual real_type D(real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type DD(real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type DDD(real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const override
    -
    -
    -

    Evaluate spline value when interval is known.

    -
    -
    - -
    -
    -virtual real_type id_D(integer ni, real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type id_DD(integer ni, real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDD(integer ni, real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual void reserve(integer npts) override
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • yp: vector of y-defivative

    • -
    • incyp: access elements as yp[0], yp[incyp], yp[2*incyy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual void clear() override
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const override
    -
    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_cubic_spline_base.html b/docs/api-cpp/class_splines_1_1_cubic_spline_base.html deleted file mode 100644 index f51bbce8..00000000 --- a/docs/api-cpp/class_splines_1_1_cubic_spline_base.html +++ /dev/null @@ -1,909 +0,0 @@ - - - - - - - - - - Class CubicSplineBase — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class CubicSplineBase -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -

    Derived Types -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::CubicSplineBase : public Splines::Spline
    -
    -
    -

    cubic spline base class

    -

    Subclassed by Splines::AkimaSpline, Splines::BesselSpline, Splines::CubicSpline, Splines::HermiteSpline, Splines::PchipSpline

    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual void build() = 0
    -
    -
    -

    Build a spline using internal stored data

    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -inline virtual real_type DDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type DDDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline virtual real_type id_DDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type id_DDDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -virtual unsigned type() const = 0
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline CubicSplineBase(string const &name = "CubicSplineBase")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~CubicSplineBase() override
    -
    -
    -
    - -
    -
    -void copySpline(CubicSplineBase const &S)
    -
    -
    -
    - -
    -
    -inline real_type ypNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y’ component).

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    -
    -
    -

    Use externally allocated memory for npts points.

    -
    -
    - -
    -
    -virtual real_type operator()(real_type x) const override
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -virtual real_type D(real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type DD(real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type DDD(real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const override
    -
    -
    -

    Evaluate spline value when interval is known.

    -
    -
    - -
    -
    -virtual real_type id_D(integer ni, real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type id_DD(integer ni, real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDD(integer ni, real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual void reserve(integer npts) override
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • yp: vector of y-defivative

    • -
    • incyp: access elements as yp[0], yp[incyp], yp[2*incyy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual void clear() override
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const override
    -
    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_hermite_spline.html b/docs/api-cpp/class_splines_1_1_hermite_spline.html deleted file mode 100644 index bcdeef4d..00000000 --- a/docs/api-cpp/class_splines_1_1_hermite_spline.html +++ /dev/null @@ -1,898 +0,0 @@ - - - - - - - - - - Class HermiteSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class HermiteSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::HermiteSpline : public Splines::CubicSplineBase
    -
    -
    -

    Hermite Spline Management Class.

    -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -inline virtual real_type DDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type DDDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline virtual real_type id_DDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type id_DDDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline HermiteSpline(string const &name = "HermiteSpline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~HermiteSpline() override
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -inline virtual unsigned type() const override
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -inline virtual void build() override
    -
    -
    -

    Build a spline using internal stored data

    -
    -
    - -
    -
    -virtual void build(real_type const*, integer, real_type const*, integer, integer) override
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc) override
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -void copySpline(CubicSplineBase const &S)
    -
    -
    -
    - -
    -
    -inline real_type ypNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y’ component).

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    -
    -
    -

    Use externally allocated memory for npts points.

    -
    -
    - -
    -
    -virtual real_type operator()(real_type x) const override
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -virtual real_type D(real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type DD(real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type DDD(real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const override
    -
    -
    -

    Evaluate spline value when interval is known.

    -
    -
    - -
    -
    -virtual real_type id_D(integer ni, real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type id_DD(integer ni, real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDD(integer ni, real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual void reserve(integer npts) override
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • yp: vector of y-defivative

    • -
    • incyp: access elements as yp[0], yp[incyp], yp[2*incyy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual void clear() override
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const override
    -
    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_linear_spline.html b/docs/api-cpp/class_splines_1_1_linear_spline.html deleted file mode 100644 index b783565b..00000000 --- a/docs/api-cpp/class_splines_1_1_linear_spline.html +++ /dev/null @@ -1,810 +0,0 @@ - - - - - - - - - - Class LinearSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class LinearSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::LinearSpline : public Splines::Spline
    -
    -
    -

    Linear spline class.

    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -inline virtual real_type DDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type DDDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline virtual real_type id_DDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type id_DDDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline LinearSpline(string const &name = "LinearSpline")
    -
    -
    -
    - -
    -
    -inline ~LinearSpline() override
    -
    -
    -
    - -
    -
    -void reserve_external(integer n, real_type *&p_x, real_type *&p_y)
    -
    -
    -

    Use externally allocated memory for npts points.

    -
    -
    - -
    -
    -virtual real_type operator()(real_type x) const override
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -virtual real_type D(real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline virtual real_type DD(real_type) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline virtual real_type DDD(real_type) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const override
    -
    -
    -

    Evaluate spline value when interval is known.

    -
    -
    - -
    -
    -virtual real_type id_D(integer, real_type) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline virtual real_type id_DD(integer, real_type) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline virtual real_type id_DDD(integer, real_type) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -inline virtual unsigned type() const override
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -virtual void reserve(integer npts) override
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -inline virtual void build() override
    -
    -
    -

    added for compatibility with cubic splines

    -
    -
    - -
    -
    -virtual void clear() override
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const override
    -
    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc) override
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_pchip_spline.html b/docs/api-cpp/class_splines_1_1_pchip_spline.html deleted file mode 100644 index ce15cd40..00000000 --- a/docs/api-cpp/class_splines_1_1_pchip_spline.html +++ /dev/null @@ -1,898 +0,0 @@ - - - - - - - - - - Class PchipSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class PchipSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::PchipSpline : public Splines::CubicSplineBase
    -
    -
    -

    Pchip (Piecewise Cubic Hermite Interpolating Polynomial) spline class.

    -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -inline virtual real_type DDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type DDDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline virtual real_type id_DDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type id_DDDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline PchipSpline(string const &name = "PchipSpline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~PchipSpline() override
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -inline virtual unsigned type() const override
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -virtual void build() override
    -
    -
    -

    Build a Monotone spline from previously inserted points.

    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc) override
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -void copySpline(CubicSplineBase const &S)
    -
    -
    -
    - -
    -
    -inline real_type ypNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y’ component).

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_dy)
    -
    -
    -

    Use externally allocated memory for npts points.

    -
    -
    - -
    -
    -virtual real_type operator()(real_type x) const override
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -virtual real_type D(real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type DD(real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type DDD(real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const override
    -
    -
    -

    Evaluate spline value when interval is known.

    -
    -
    - -
    -
    -virtual real_type id_D(integer ni, real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type id_DD(integer ni, real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDD(integer ni, real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual void reserve(integer npts) override
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *yp, integer incyp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • yp: vector of y-defivative

    • -
    • incyp: access elements as yp[0], yp[incyp], yp[2*incyy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, real_type const *yp, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &yp)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • yp: vector of y’-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual void clear() override
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const override
    -
    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_quintic_spline.html b/docs/api-cpp/class_splines_1_1_quintic_spline.html deleted file mode 100644 index 1dd6ee72..00000000 --- a/docs/api-cpp/class_splines_1_1_quintic_spline.html +++ /dev/null @@ -1,846 +0,0 @@ - - - - - - - - - - Class QuinticSpline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class QuinticSpline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::QuinticSpline : public Splines::QuinticSplineBase
    -
    -
    -

    Quintic spline class.

    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline QuinticSpline(string const &name = "Spline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~QuinticSpline() override
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -inline void setQuinticType(QUINTIC_SPLINE_TYPE qt)
    -
    -
    -
    - -
    -
    -virtual void build() override
    -
    -
    -

    Build a Monotone quintic spline from previously inserted points.

    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc) override
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -void copySpline(QuinticSplineBase const &S)
    -
    -
    -
    - -
    -
    -inline real_type ypNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y’ component).

    -
    -
    - -
    -
    -inline real_type yppNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y’’ component).

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_Yp, real_type *&p_Ypp)
    -
    -
    -

    Use externally allocated memory for npts points.

    -
    -
    - -
    -
    -virtual real_type operator()(real_type x) const override
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -virtual real_type D(real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type DD(real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type DDD(real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type DDDD(real_type x) const override
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -virtual real_type DDDDD(real_type x) const override
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const override
    -
    -
    -

    Evaluate spline value when interval is known.

    -
    -
    - -
    -
    -virtual real_type id_D(integer ni, real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type id_DD(integer ni, real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDD(integer ni, real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDDD(integer ni, real_type x) const override
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -virtual real_type id_DDDDD(integer ni, real_type x) const override
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -inline virtual unsigned type() const override
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -virtual void reserve(integer npts) override
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -virtual void clear() override
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const override
    -
    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_quintic_spline_base.html b/docs/api-cpp/class_splines_1_1_quintic_spline_base.html deleted file mode 100644 index a733dcf6..00000000 --- a/docs/api-cpp/class_splines_1_1_quintic_spline_base.html +++ /dev/null @@ -1,846 +0,0 @@ - - - - - - - - - - Class QuinticSplineBase — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class QuinticSplineBase -

    - -
    -

    Inheritance Relationships -

    -
    -

    Base Type -

    - -
    -
    -

    Derived Type -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::QuinticSplineBase : public Splines::Spline
    -
    -
    -

    cubic quintic base class

    -

    Subclassed by Splines::QuinticSpline

    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual void build() = 0
    -
    -
    -

    Build a spline using internal stored data

    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline QuinticSplineBase(string const &name = "Spline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~QuinticSplineBase() override
    -
    -
    -
    - -
    -
    -void copySpline(QuinticSplineBase const &S)
    -
    -
    -
    - -
    -
    -inline real_type ypNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y’ component).

    -
    -
    - -
    -
    -inline real_type yppNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y’’ component).

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -void reserve_external(integer n, real_type *&p_x, real_type *&p_y, real_type *&p_Yp, real_type *&p_Ypp)
    -
    -
    -

    Use externally allocated memory for npts points.

    -
    -
    - -
    -
    -virtual real_type operator()(real_type x) const override
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -virtual real_type D(real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type DD(real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type DDD(real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type DDDD(real_type x) const override
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -virtual real_type DDDDD(real_type x) const override
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const override
    -
    -
    -

    Evaluate spline value when interval is known.

    -
    -
    - -
    -
    -virtual real_type id_D(integer ni, real_type x) const override
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type id_DD(integer ni, real_type x) const override
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDD(integer ni, real_type x) const override
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDDD(integer ni, real_type x) const override
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -virtual real_type id_DDDDD(integer ni, real_type x) const override
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const override
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -inline virtual unsigned type() const override
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -virtual void reserve(integer npts) override
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -virtual void clear() override
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const override
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const override
    -
    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_spline.html b/docs/api-cpp/class_splines_1_1_spline.html deleted file mode 100644 index 095441e5..00000000 --- a/docs/api-cpp/class_splines_1_1_spline.html +++ /dev/null @@ -1,809 +0,0 @@ - - - - - - - - - - Class Spline — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class Spline -

    - -
    -

    Inheritance Relationships -

    -
    -

    Derived Types -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::Spline
    -
    -
    -

    Spline Management Class.

    -

    Subclassed by Splines::ConstantSpline, Splines::CubicSplineBase, Splines::LinearSpline, Splines::QuinticSplineBase

    -
    -

    Spline Data Info

    -
    -
    -inline string const &name() const
    -
    -
    -

    return the name of the spline used in the constructor

    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_extended_constant() const
    -
    -
    -
    - -
    -
    -inline void make_extended_constant()
    -
    -
    -
    - -
    -
    -inline void make_extended_not_constant()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -

    Build

    -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -virtual void build(real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], y[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -virtual void build() = 0
    -
    -
    -

    Build a spline using internal stored data

    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc)
    -
    -
    -

    Build a spline using a generic container.

    -
    -
    - -
    -
    -

    Incremental Build

    -

    Various constructors for the spline class.

    -
    -
    -virtual void reserve(integer npts) = 0
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -virtual void clear() = 0
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -

    Dump Data

    -
    -
    -void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -

    dump a sample of the spline

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const = 0
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -

    Evaluation

    -
    -
    -virtual real_type operator()(real_type x) const = 0
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -virtual real_type D(real_type x) const = 0
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type DD(real_type x) const = 0
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type DDD(real_type x) const = 0
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -inline virtual real_type DDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type DDDDD(real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -virtual real_type id_eval(integer ni, real_type x) const = 0
    -
    -
    -

    Evaluate spline value when interval is known.

    -
    -
    - -
    -
    -virtual real_type id_D(integer ni, real_type x) const = 0
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -virtual real_type id_DD(integer ni, real_type x) const = 0
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -virtual real_type id_DDD(integer ni, real_type x) const = 0
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -inline virtual real_type id_DDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline virtual real_type id_DDDDD(integer, real_type) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -

    Get Info

    -
    -
    -virtual integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const = 0
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -virtual integer order() const = 0
    -
    -
    -
    - -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -virtual unsigned type() const = 0
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -string info() const
    -
    -
    -

    Return a string information of the kind and order of the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    Print information of the kind and order of the spline.

    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline Spline(string const &name = "Spline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline virtual ~Spline()
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -

    find interval containing x using binary search.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_spline1_d.html b/docs/api-cpp/class_splines_1_1_spline1_d.html deleted file mode 100644 index 852aaee1..00000000 --- a/docs/api-cpp/class_splines_1_1_spline1_d.html +++ /dev/null @@ -1,730 +0,0 @@ - - - - - - - - - - Class Spline1D — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class Spline1D -

    - -
    -

    Class Documentation -

    -
    -
    -class Splines::Spline1D
    -
    -
    -

    Spline Management Class.

    -
    -

    Public Functions

    -
    -
    -inline Spline1D(std::string const &n)
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~Spline1D()
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_opened()
    -
    -
    -
    - -
    -
    -inline bool is_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_bounded()
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the spline.

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xBegin() const
    -
    -
    -

    return first node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yBegin() const
    -
    -
    -

    return first node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xEnd() const
    -
    -
    -

    return last node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yEnd() const
    -
    -
    -

    return last node of the spline (y component).

    -
    -
    - -
    -
    -inline void reserve(integer npts)
    -
    -
    -

    Allocate memory for npts points.

    -
    -
    - -
    -
    -inline void pushBack(real_type x, real_type y)
    -
    -
    -

    Add a support point (x,y) to the spline.

    -
    -
    - -
    -
    -inline void dropBack()
    -
    -
    -

    Drop last inserted point of the spline.

    -
    -
    - -
    -
    -inline void build()
    -
    -
    -

    Build a spline.

    -
    -
    - -
    -
    -void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -void build(SplineType1D tp, real_type const *x, integer incx, real_type const *y, integer incy, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • tp: spline type

    • -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], x[2*incy],…

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(SplineType1D tp, real_type const *x, real_type const *y, integer n)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • tp: spline type

    • -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    • n: total number of points

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(SplineType1D tp, vector<real_type> const &x, vector<real_type> const &y)
    -
    -
    -

    Build a spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • tp: spline type

    • -
    • x: vector of x-coordinates

    • -
    • y: vector of y-coordinates

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void clear()
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -inline void setOrigin(real_type x0)
    -
    -
    -

    change X-origin of the spline

    -
    -
    - -
    -
    -inline void setRange(real_type xmin, real_type xmax)
    -
    -
    -

    change X-range of the spline

    -
    -
    - -
    -
    -inline void dump(ostream_type &s, integer nintervals, char const *header = "x\ty") const
    -
    -
    -
    - -
    -
    -inline void dump(char const *fname, integer nintervals, char const *header = "x\ty") const
    -
    -
    -
    - -
    -
    -inline real_type operator()(real_type x) const
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -inline real_type D(real_type x) const
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline real_type DD(real_type x) const
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline real_type DDD(real_type x) const
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -inline real_type DDDD(real_type x) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type DDDDD(real_type x) const
    -
    -
    -

    5th derivative

    -
    -
    - -
    -
    -inline real_type eval(real_type x) const
    -
    -
    -

    Some aliases.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x) const
    -
    -
    -
    - -
    -
    -inline real_type id_eval(integer ni, real_type x) const
    -
    -
    -

    Evaluate spline value knowing interval.

    -
    -
    - -
    -
    -inline real_type id_D(integer ni, real_type x) const
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline real_type id_DD(integer ni, real_type x) const
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline real_type id_DDD(integer ni, real_type x) const
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -inline real_type id_DDDD(integer ni, real_type x) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type id_DDDDD(integer ni, real_type x) const
    -
    -
    -

    5th derivative

    -
    -
    - -
    -
    -inline integer coeffs(real_type *const cfs, real_type *const nodes, bool transpose = false) const
    -
    -
    -

    get the piecewise polinomials of the spline

    -
    -
    - -
    -
    -inline integer order() const
    -
    -
    -
    - -
    -
    -inline void writeToStream(ostream_type &s) const
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -inline unsigned type() const
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -inline string info() const
    -
    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_spline2_d.html b/docs/api-cpp/class_splines_1_1_spline2_d.html deleted file mode 100644 index 6b154d5f..00000000 --- a/docs/api-cpp/class_splines_1_1_spline2_d.html +++ /dev/null @@ -1,648 +0,0 @@ - - - - - - - - - - Class Spline2D — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class Spline2D -

    - -
    -

    Class Documentation -

    -
    -
    -class Splines::Spline2D
    -
    -
    -

    Bi-quintic spline base class.

    -
    -

    Public Functions

    -
    -
    -inline Spline2D(string const &name = "Spline2D")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -inline ~Spline2D()
    -
    -
    -
    - -
    -
    -inline bool is_x_closed() const
    -
    -
    -
    - -
    -
    -inline void make_x_closed()
    -
    -
    -
    - -
    -
    -inline void make_x_opened()
    -
    -
    -
    - -
    -
    -inline bool is_y_closed() const
    -
    -
    -
    - -
    -
    -inline void make_y_closed()
    -
    -
    -
    - -
    -
    -inline void make_y_opened()
    -
    -
    -
    - -
    -
    -inline bool is_x_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_x_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_x_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_y_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_y_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_y_bounded()
    -
    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -inline void clear()
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -inline integer numPointX() const
    -
    -
    -

    return the number of support points of the spline along x direction

    -
    -
    - -
    -
    -inline integer numPointY() const
    -
    -
    -

    return the number of support points of the spline along y direction

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type zNode(integer i, integer j) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -inline real_type zMin() const
    -
    -
    -

    return z-minumum spline value

    -
    -
    - -
    -
    -inline real_type zMax() const
    -
    -
    -

    return z-maximum spline value

    -
    -
    - -
    -
    -void build(SplineType2D tp, real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -
    - -
    -
    -void build(SplineType2D tp, vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • tp: spline type

    • -
    • x: vector of x-coordinates, nx = x.size()

    • -
    • y: vector of y-coordinates, ny = y.size()

    • -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(SplineType2D tp, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • tp: spline type

    • -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(SplineType2D tp, vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • tp: spline type

    • -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline real_type operator()(real_type x, real_type y) const
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -inline void D(real_type x, real_type y, real_type d[3]) const
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline real_type Dx(real_type x, real_type y) const
    -
    -
    -
    - -
    -
    -inline real_type Dy(real_type x, real_type y) const
    -
    -
    -
    - -
    -
    -inline void DD(real_type x, real_type y, real_type dd[6]) const
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline real_type Dxx(real_type x, real_type y) const
    -
    -
    -
    - -
    -
    -inline real_type Dxy(real_type x, real_type y) const
    -
    -
    -
    - -
    -
    -inline real_type Dyy(real_type x, real_type y) const
    -
    -
    -
    - -
    -
    -inline real_type eval(real_type x, real_type y) const
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -inline real_type eval_D_1(real_type x, real_type y) const
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline real_type eval_D_2(real_type x, real_type y) const
    -
    -
    -
    - -
    -
    -inline real_type eval_D_1_1(real_type x, real_type y) const
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline real_type eval_D_1_2(real_type x, real_type y) const
    -
    -
    -
    - -
    -
    -inline real_type eval_D_2_2(real_type x, real_type y) const
    -
    -
    -
    - -
    -
    -inline void writeToStream(ostream_type &s) const
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -inline char const *type_name() const
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -inline string info() const
    -
    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_spline_set.html b/docs/api-cpp/class_splines_1_1_spline_set.html deleted file mode 100644 index c46b43c0..00000000 --- a/docs/api-cpp/class_splines_1_1_spline_set.html +++ /dev/null @@ -1,1305 +0,0 @@ - - - - - - - - - - Class SplineSet — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class SplineSet -

    - -
    -

    Nested Relationships -

    -
    -

    Nested Types -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::SplineSet
    -
    -
    -

    Splines Management Class.

    -
    -

    Public Functions

    -
    -
    -SplineSet(string const &name = "SplineSet")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -virtual ~SplineSet()
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -inline string const &header(integer i) const
    -
    -
    -
    - -
    -
    -void get_headers(std::vector<std::string> &names) const
    -
    -
    -

    fill a vector of strings with the names of the splines

    -
    -
    - -
    -
    -string name_list() const
    -
    -
    -
    - -
    -
    -inline int isMonotone(integer i) const
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the splines

    -
    -
    - -
    -
    -inline integer numSplines() const
    -
    -
    -

    return the number splines in the spline set

    -
    -
    - -
    -
    -integer getPosition(char const *hdr) const
    -
    -
    -

    return the column with header(i) == hdr, return -1 if not found

    -
    -
    - -
    -
    -inline real_type const *xNodes() const
    -
    -
    -

    return the vector of values of x-nodes

    -
    -
    - -
    -
    -real_type const *yNodes(integer i) const
    -
    -
    -

    return the vector of values of x-nodes

    -
    -
    - -
    -
    -inline real_type xNode(integer npt) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer npt, integer spl) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin(integer spl) const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax(integer spl) const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin(char const *spl) const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax(char const *spl) const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -Spline *getSpline(integer i) const
    -
    -
    -

    Return pointer to the i-th spline.

    -
    -
    - -
    -
    -inline Spline *getSpline(char const *hdr) const
    -
    -
    -

    Return pointer to the i-th spline.

    -
    -
    - -
    -
    -inline real_type operator()(real_type x, integer spl) const
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -inline real_type eval(real_type x, integer spl) const
    -
    -
    -
    - -
    -
    -inline real_type D(real_type x, integer spl) const
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x, integer spl) const
    -
    -
    -
    - -
    -
    -inline real_type DD(real_type x, integer spl) const
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x, integer spl) const
    -
    -
    -
    - -
    -
    -inline real_type DDD(real_type x, integer spl) const
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x, integer spl) const
    -
    -
    -
    - -
    -
    -inline real_type DDDD(real_type x, integer spl) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x, integer spl) const
    -
    -
    -
    - -
    -
    -inline real_type DDDDD(real_type x, integer spl) const
    -
    -
    -

    5th derivative

    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x, integer spl) const
    -
    -
    -
    - -
    -
    -inline real_type eval(real_type x, char const *name) const
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x, char const *name) const
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x, char const *name) const
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x, char const *name) const
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x, char const *name) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x, char const *name) const
    -
    -
    -

    5th derivative

    -
    -
    - -
    -
    -void eval(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate all the splines at x

    -
    -
    - -
    -
    -void eval_D(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate the fist derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DD(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate the second derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDD(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate the third derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDDD(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate the 4th derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDDDD(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate the 5th derivative of all the splines at x

    -
    -
    - -
    -
    -void eval(real_type x, real_type *const vals, integer incy = 1) const
    -
    -
    -

    Evaluate all the splines at x

    -
    -
    - -
    -
    -void eval_D(real_type x, real_type *const vals, integer incy = 1) const
    -
    -
    -

    Evaluate the fist derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DD(real_type x, real_type *const vals, integer incy = 1) const
    -
    -
    -

    Evaluate the second derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDD(real_type x, real_type *const vals, integer incy = 1) const
    -
    -
    -

    Evaluate the third derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDDD(real_type x, real_type *const vals, integer incy = 1) const
    -
    -
    -

    Evaluate the 4th derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDDDD(real_type x, real_type *const vals, integer incy = 1) const
    -
    -
    -

    Evaluate the 5th derivative of all the splines at x

    -
    -
    - -
    -
    -void eval2(integer spl, real_type zeta, vector<real_type> &vals) const
    -
    -
    -

    Evaluate all the splines at zeta using spline[spl] as independent.

    -
    -
    - -
    -
    -void eval2_D(integer spl, real_type zeta, vector<real_type> &vals) const
    -
    -
    -

    | Evaluate the fist derivative of all the splines | at zeta using spline[spl] as independent

    -
    -
    - -
    -
    -void eval2_DD(integer spl, real_type zeta, vector<real_type> &vals) const
    -
    -
    -

    | Evaluate the second derivative of all the splines | at zeta using spline[spl] as independent

    -
    -
    - -
    -
    -void eval2_DDD(integer spl, real_type zeta, vector<real_type> &vals) const
    -
    -
    -

    | Evaluate the third derivative of all the splines | at zeta using spline[spl] as independent

    -
    -
    - -
    -
    -void eval2(integer spl, real_type zeta, real_type *const vals, integer incy = 1) const
    -
    -
    -

    Evaluate all the splines at zeta using spline[spl] as independent.

    -
    -
    - -
    -
    -void eval2_D(integer spl, real_type zeta, real_type *const vals, integer incy = 1) const
    -
    -
    -

    Evaluate the fist derivative of all the splines at zeta using spline[spl] as independent

    -
    -
    - -
    -
    -void eval2_DD(integer spl, real_type zeta, real_type *const vals, integer incy = 1) const
    -
    -
    -

    Evaluate the second derivative of all the splines at zeta using spline[spl] as independent

    -
    -
    - -
    -
    -void eval2_DDD(integer spl, real_type zeta, real_type *const vals, integer incy = 1) const
    -
    -
    -

    Evaluate the 3rd derivative of all the splines at zeta using spline[spl] as independent

    -
    -
    - -
    -
    -real_type eval2(real_type zeta, char const *indep, char const *name) const
    -
    -
    -

    Evaluate the spline name at zeta using spline indep as independent

    -
    -
    - -
    -
    -real_type eval2_D(real_type zeta, char const *indep, char const *name) const
    -
    -
    -

    Evaluate first derivative of the spline name at zeta using spline indep as independent

    -
    -
    - -
    -
    -real_type eval2_DD(real_type zeta, char const *indep, char const *name) const
    -
    -
    -

    Evaluate second derivative of the spline name at zeta using spline indep as independent

    -
    -
    - -
    -
    -real_type eval2_DDD(real_type zeta, char const *indep, char const *name) const
    -
    -
    -

    Evaluate third derivative of the spline name at zeta using spline indep as independent

    -
    -
    - -
    -
    -real_type eval2(real_type zeta, integer indep, integer spl) const
    -
    -
    -

    Evaluate the spline spl at zeta using spline indep as independent

    -
    -
    - -
    -
    -real_type eval2_D(real_type zeta, integer indep, integer spl) const
    -
    -
    -

    Evaluate first derivative of the spline spl at zeta using spline indep as independent

    -
    -
    - -
    -
    -real_type eval2_DD(real_type zeta, integer indep, integer spl) const
    -
    -
    -

    Evaluate second derivative of the spline spl at zeta using spline indep as independent

    -
    -
    - -
    -
    -real_type eval2_DDD(real_type zeta, integer indep, integer spl) const
    -
    -
    -

    Evaluate third derivative of the spline spl at zeta using spline indep as independent

    -
    -
    - -
    -
    -void eval(real_type x, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x and fill a map of values in a GenericContainer

    -
    -
    - -
    -
    -void eval(vec_real_type const &vec, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer

    -
    -
    - -
    -
    -void eval(real_type x, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x and fill a map of values in a GenericContainer with keys in columns

    -
    -
    - -
    -
    -void eval(vec_real_type const &vec, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer with keys in columns

    -
    -
    - -
    -
    -void eval2(real_type zeta, integer indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -void eval2(vec_real_type const &zetas, integer indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -void eval2(real_type zeta, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -void eval2(vec_real_type const &zetas, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2(real_type zeta, char const *indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2(vec_real_type const &zetas, char const *indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2(real_type zeta, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2(vec_real_type const &zetas, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -void eval_D(real_type x, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x and fill a map of values in a GenericContainer

    -
    -
    - -
    -
    -void eval_D(vec_real_type const &vec, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer

    -
    -
    - -
    -
    -void eval_D(real_type x, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x and fill a map of values in a GenericContainer with keys in columns

    -
    -
    - -
    -
    -void eval_D(vec_real_type const &vec, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer with keys in columns

    -
    -
    - -
    -
    -void eval2_D(real_type zeta, integer indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -void eval2_D(vec_real_type const &zetas, integer indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -void eval2_D(real_type zeta, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -void eval2_D(vec_real_type const &zetas, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_D(real_type zeta, char const *indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_D(vec_real_type const &zetas, char const *indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline.

    -
    -
    - -
    -
    -inline void eval2_D(real_type zeta, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_D(vec_real_type const &zetas, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -void eval_DD(real_type x, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x and fill a map of values in a GenericContainer

    -
    -
    - -
    -
    -void eval_DD(vec_real_type const &vec, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer

    -
    -
    - -
    -
    -void eval_DD(real_type x, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x and fill a map of values in a GenericContainer with keys in columns

    -
    -
    - -
    -
    -void eval_DD(vec_real_type const &vec, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer with keys in columns

    -
    -
    - -
    -
    -void eval2_DD(real_type zeta, integer indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -void eval2_DD(vec_real_type const &zetas, integer indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -void eval2_DD(real_type zeta, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -void eval2_DD(vec_real_type const &zetas, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_DD(real_type zeta, char const *indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_DD(vec_real_type const &zetas, char const *indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_DD(real_type zeta, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_DD(vec_real_type const &zetas, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -void eval_DDD(real_type x, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x and fill a map of values in a GenericContainer

    -
    -
    - -
    -
    -void eval_DDD(vec_real_type const &vec, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer

    -
    -
    - -
    -
    -void eval_DDD(real_type x, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x and fill a map of values in a GenericContainer with keys in columns

    -
    -
    - -
    -
    -void eval_DDD(vec_real_type const &vec, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at x values contained in vec and fill a map of vector in a GenericContainer with keys in columns

    -
    -
    - -
    -
    -void eval2_DDD(real_type zeta, integer indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -void eval2_DDD(vec_real_type const &zetas, integer indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -void eval2_DDD(real_type zeta, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -void eval2_DDD(vec_real_type const &zetas, integer indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_DDD(real_type zeta, char const *indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_DDD(vec_real_type const &zetas, char const *indep, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_DDD(real_type zeta, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta and fill a map of values in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -inline void eval2_DDD(vec_real_type const &zetas, char const *indep, vec_string_type const &columns, GenericContainer &vals) const
    -
    -
    -

    Evaluate all the splines at zeta values contained in vec and fill a map of vector in a GenericContainer with keys in columns and indep as independent spline

    -
    -
    - -
    -
    -void build(integer nspl, integer npts, char const **headers, SplineType1D const *stype, real_type const *X, real_type const **Y, real_type const **Yp = nullptr)
    -
    -
    -

    Build a set of splines.

    -

    -
    -
    Parameters
    -
    -
      -
    • nspl: the number of splines

    • -
    • npts: the number of points of each splines

    • -
    • headers: the names of the splines

    • -
    • stype: the type of each spline

    • -
    • X: pointer to X independent values

    • -
    • Y: vector of nspl pointers to Y depentendent values.

    • -
    • Yp: vector of nspl pointers to Y derivative depentendent values.

    • -
    -
    -
    - -
    -
    - -
    -
    -void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline unsigned type() const
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -string info() const
    -
    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -
    - -
    -
    -void dump_table(ostream_type &s, integer num_points) const
    -
    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_spline_set_1_1_binary_search.html b/docs/api-cpp/class_splines_1_1_spline_set_1_1_binary_search.html deleted file mode 100644 index 49d5176e..00000000 --- a/docs/api-cpp/class_splines_1_1_spline_set_1_1_binary_search.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - Class SplineSet::BinarySearch — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class SplineSet::BinarySearch -

    - -
    -

    Nested Relationships -

    -

    This class is a nested type of Class SplineSet.

    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::SplineSet::BinarySearch
    -
    -
    -
    -

    Public Types

    -
    -
    -typedef std::pair<std::string, integer> DATA_TYPE
    -
    -
    -
    - -
    -
    -

    Public Functions

    -
    -
    -inline BinarySearch()
    -
    -
    -
    - -
    -
    -inline ~BinarySearch()
    -
    -
    -
    - -
    -
    -inline void clear()
    -
    -
    -
    - -
    -
    -inline integer n_elem() const
    -
    -
    -
    - -
    -
    -inline DATA_TYPE const &get_elem(integer i) const
    -
    -
    -
    - -
    -
    -integer search(std::string const &id) const
    -
    -
    -
    - -
    -
    -void insert(std::string const &id, integer position)
    -
    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_spline_surf.html b/docs/api-cpp/class_splines_1_1_spline_surf.html deleted file mode 100644 index d1792413..00000000 --- a/docs/api-cpp/class_splines_1_1_spline_surf.html +++ /dev/null @@ -1,720 +0,0 @@ - - - - - - - - - - Class SplineSurf — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class SplineSurf -

    - -
    -

    Inheritance Relationships -

    -
    -

    Derived Types -

    - -
    -
    -
    -

    Class Documentation -

    -
    -
    -class Splines::SplineSurf
    -
    -
    -

    Spline Management Class.

    -

    Subclassed by Splines::BiCubicSplineBase, Splines::BiQuinticSplineBase, Splines::BilinearSpline

    -
    -

    Public Functions

    -
    -
    -inline SplineSurf(string const &name = "Spline")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -virtual ~SplineSurf()
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -inline bool is_x_closed() const
    -
    -
    -
    - -
    -
    -inline void make_x_closed()
    -
    -
    -
    - -
    -
    -inline void make_x_opened()
    -
    -
    -
    - -
    -
    -inline bool is_y_closed() const
    -
    -
    -
    - -
    -
    -inline void make_y_closed()
    -
    -
    -
    - -
    -
    -inline void make_y_opened()
    -
    -
    -
    - -
    -
    -inline bool is_x_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_x_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_x_bounded()
    -
    -
    -
    - -
    -
    -inline bool is_y_bounded() const
    -
    -
    -
    - -
    -
    -inline void make_y_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_y_bounded()
    -
    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -void clear()
    -
    -
    -

    Cancel the support points, empty the spline.

    -
    -
    - -
    -
    -inline integer numPointX() const
    -
    -
    -

    return the number of support points of the spline along x direction

    -
    -
    - -
    -
    -inline integer numPointY() const
    -
    -
    -

    return the number of support points of the spline along y direction

    -
    -
    - -
    -
    -inline real_type xNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer i) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type zNode(integer i, integer j) const
    -
    -
    -

    return the i-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -inline real_type yMin() const
    -
    -
    -

    return y-minumum spline value

    -
    -
    - -
    -
    -inline real_type yMax() const
    -
    -
    -

    return y-maximum spline value

    -
    -
    - -
    -
    -inline real_type zMin() const
    -
    -
    -

    return z-minumum spline value

    -
    -
    - -
    -
    -inline real_type zMax() const
    -
    -
    -

    return z-maximum spline value

    -
    -
    - -
    -
    -void build(real_type const *x, integer incx, real_type const *y, integer incy, real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates

    • -
    • incx: access elements as x[0], x[incx], x[2*incx],…

    • -
    • y: vector of y-coordinates

    • -
    • incy: access elements as y[0], y[incy], x[2*incy],…

    • -
    • z: matrix of z-values

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: total number of points in direction x

    • -
    • ny: total number of points in direction y

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*ldZ] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &x, vector<real_type> const &y, vector<real_type> const &z, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline

    -
    -
    Parameters
    -
    -
      -
    • x: vector of x-coordinates, nx = x.size()

    • -
    • y: vector of y-coordinates, ny = y.size()

    • -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -void build(real_type const *z, integer ldZ, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix

    • -
    • ldZ: leading dimension of the matrix. Elements are stored by row Z(i,j) = z[i*ldZ+j] as C-matrix

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -inline void build(vector<real_type> const &z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false)
    -
    -
    -

    Build surface spline.

    -

    -
    -
    Parameters
    -
    -
      -
    • z: matrix of z-values. Elements are stored by row Z(i,j) = z[i*ny+j] as C-matrix. ldZ leading dimension of the matrix is ny for C-storage and nx for Fortran storage.

    • -
    • nx: x-dimension

    • -
    • ny: y-dimension

    • -
    • fortran_storage: if true elements are stored by column i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix

    • -
    • transposed: if true matrix Z is stored transposed

    • -
    -
    -
    - -
    -
    - -
    -
    -void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -virtual real_type operator()(real_type x, real_type y) const = 0
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -virtual void D(real_type x, real_type y, real_type d[3]) const = 0
    -
    -
    -

    value and first derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dx(real_type x, real_type y) const = 0
    -
    -
    -

    first derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_x(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dy(real_type x, real_type y) const = 0
    -
    -
    -

    first derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_y(x,y) \)

    -
    -
    - -
    -
    -virtual void DD(real_type x, real_type y, real_type dd[6]) const = 0
    -
    -
    -

    value, first and second derivatives at point \( (x,y) \)

    -
      -
    • d[0] value of the spline \( S(x,y) \)

    • -
    • d[1] derivative respect to \( x \) of the spline: \( S_x(x,y) \)

    • -
    • d[2] derivative respect to \( y \) of the spline: \( S_y(x,y) \)

    • -
    • d[3] second derivative respect to \( x \) of the spline: \( S_{xx}(x,y) \)

    • -
    • d[4] mixed second derivative: \( S_{xy}(x,y) \)

    • -
    • d[5] second derivative respect to \( y \) of the spline: \( S_{yy}(x,y) \)

    • -
    - -
    -
    - -
    -
    -virtual real_type Dxx(real_type x, real_type y) const = 0
    -
    -
    -

    second derivatives respect to \( x \) at point \( (x,y) \) of the spline: \( S_{xx}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dxy(real_type x, real_type y) const = 0
    -
    -
    -

    mixed second derivatives: \( S_{xy}(x,y) \)

    -
    -
    - -
    -
    -virtual real_type Dyy(real_type x, real_type y) const = 0
    -
    -
    -

    second derivatives respect to \( y \) at point \( (x,y) \) of the spline: \( S_{yy}(x,y) \)

    -
    -
    - -
    -
    -inline real_type eval(real_type x, real_type y) const
    -
    -
    -

    Evaluate spline value at point \( (x,y) \).

    -
    -
    - -
    -
    -inline real_type eval_D_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_1(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxx(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_1_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dxy(x,y)

    -
    -
    - -
    -
    -inline real_type eval_D_2_2(real_type x, real_type y) const
    -
    -
    -

    Alias for Dyy(x,y)

    -
    -
    - -
    -
    -virtual void writeToStream(ostream_type &s) const = 0
    -
    -
    -

    Print spline coefficients.

    -
    -
    - -
    -
    -virtual char const *type_name() const = 0
    -
    -
    -

    Return spline typename.

    -
    -
    - -
    -
    -virtual string info() const
    -
    -
    -

    return a string with information about the spline.

    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -

    write a string with information about the spline.

    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_splines_1_1_spline_vec.html b/docs/api-cpp/class_splines_1_1_spline_vec.html deleted file mode 100644 index 5eddea24..00000000 --- a/docs/api-cpp/class_splines_1_1_spline_vec.html +++ /dev/null @@ -1,733 +0,0 @@ - - - - - - - - - - Class SplineVec — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Class SplineVec -

    - -
    -

    Class Documentation -

    -
    -
    -class Splines::SplineVec
    -
    -
    -

    Splines Management Class.

    -
    -

    Public Functions

    -
    -
    -SplineVec(string const &name = "SplineVec")
    -
    -
    -

    spline constructor

    -
    -
    - -
    -
    -virtual ~SplineVec()
    -
    -
    -

    spline destructor

    -
    -
    - -
    -
    -integer search(real_type &x) const
    -
    -
    -
    - -
    -
    -inline bool is_closed() const
    -
    -
    -
    - -
    -
    -inline void make_closed()
    -
    -
    -
    - -
    -
    -inline void make_open()
    -
    -
    -
    - -
    -
    -inline bool can_extend() const
    -
    -
    -
    - -
    -
    -inline void make_unbounded()
    -
    -
    -
    - -
    -
    -inline void make_buonded()
    -
    -
    -
    - -
    -
    -inline string const &name() const
    -
    -
    -
    - -
    -
    -inline integer numPoints() const
    -
    -
    -

    return the number of support points of the splines

    -
    -
    - -
    -
    -inline integer dimension() const
    -
    -
    -

    return the number splines in the spline set

    -
    -
    - -
    -
    -inline real_type const *xNodes() const
    -
    -
    -

    return the vector of values of x-nodes

    -
    -
    - -
    -
    -inline real_type xNode(integer npt) const
    -
    -
    -

    return the npt-th node of the spline (x component).

    -
    -
    - -
    -
    -inline real_type yNode(integer npt, integer j) const
    -
    -
    -

    return the npt-th node of the spline (y component).

    -
    -
    - -
    -
    -inline real_type xMin() const
    -
    -
    -

    return x-minumum spline value

    -
    -
    - -
    -
    -inline real_type xMax() const
    -
    -
    -

    return x-maximum spline value

    -
    -
    - -
    -
    -real_type operator()(real_type x, integer i) const
    -
    -
    -

    Evaluate spline value.

    -
    -
    - -
    -
    -inline real_type eval(real_type x, integer i) const
    -
    -
    -
    - -
    -
    -real_type D(real_type x, integer i) const
    -
    -
    -

    First derivative.

    -
    -
    - -
    -
    -inline real_type eval_D(real_type x, integer i) const
    -
    -
    -
    - -
    -
    -real_type DD(real_type x, integer i) const
    -
    -
    -

    Second derivative.

    -
    -
    - -
    -
    -inline real_type eval_DD(real_type x, integer i) const
    -
    -
    -
    - -
    -
    -real_type DDD(real_type x, integer i) const
    -
    -
    -

    Third derivative.

    -
    -
    - -
    -
    -inline real_type eval_DDD(real_type x, integer i) const
    -
    -
    -
    - -
    -
    -real_type DDDD(real_type x, integer i) const
    -
    -
    -

    4th derivative

    -
    -
    - -
    -
    -inline real_type eval_DDDD(real_type x, integer i) const
    -
    -
    -
    - -
    -
    -real_type DDDDD(real_type x, integer i) const
    -
    -
    -

    5th derivative

    -
    -
    - -
    -
    -inline real_type eval_DDDDD(real_type x, integer i) const
    -
    -
    -
    - -
    -
    -void eval(real_type x, real_type *const vals, integer inc) const
    -
    -
    -

    Evaluate all the splines at x

    -
    -
    - -
    -
    -void eval_D(real_type x, real_type *const vals, integer inc) const
    -
    -
    -

    Evaluate the fist derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DD(real_type x, real_type *const vals, integer inc) const
    -
    -
    -

    Evaluate the second derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDD(real_type x, real_type *const vals, integer inc) const
    -
    -
    -

    Evaluate the third derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDDD(real_type x, real_type *const vals, integer inc) const
    -
    -
    -

    Evaluate the 4th derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDDDD(real_type x, real_type *const vals, integer inc) const
    -
    -
    -

    Evaluate the 5th derivative of all the splines at x

    -
    -
    - -
    -
    -void eval(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate all the splines at x

    -
    -
    - -
    -
    -void eval_D(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate the fist derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DD(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate the second derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDD(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate the third derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDDD(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate the 4th derivative of all the splines at x

    -
    -
    - -
    -
    -void eval_DDDDD(real_type x, vector<real_type> &vals) const
    -
    -
    -

    Evaluate the 5th derivative of all the splines at x

    -
    -
    - -
    -
    -inline void eval(real_type x, GenericContainer &vals) const
    -
    -
    -

    | Evaluate at x and fill a GenericContainer

    -
    -
    - -
    -
    -inline void eval_D(real_type x, GenericContainer &vals) const
    -
    -
    -
    - -
    -
    -inline void eval_DD(real_type x, GenericContainer &vals) const
    -
    -
    -
    - -
    -
    -inline void eval_DDD(real_type x, GenericContainer &vals) const
    -
    -
    -
    - -
    -
    -inline void eval_DDDD(real_type x, GenericContainer &vals) const
    -
    -
    -
    - -
    -
    -inline void eval_DDDDD(real_type x, GenericContainer &vals) const
    -
    -
    -
    - -
    -
    -void eval(vec_real_type const &x, GenericContainer &vals) const
    -
    -
    -

    | Evaluate at x and fill a GenericContainer

    -
    -
    - -
    -
    -void eval_D(vec_real_type const &x, GenericContainer &vals) const
    -
    -
    -
    - -
    -
    -void eval_DD(vec_real_type const &x, GenericContainer &vals) const
    -
    -
    -
    - -
    -
    -void eval_DDD(vec_real_type const &x, GenericContainer &vals) const
    -
    -
    -
    - -
    -
    -void eval_DDDD(vec_real_type const &x, GenericContainer &vals) const
    -
    -
    -
    - -
    -
    -void eval_DDDDD(vec_real_type const &x, GenericContainer &vals) const
    -
    -
    -
    - -
    -
    -void setup(integer dim, integer npts, real_type const **Y)
    -
    -
    -
    - -
    -
    -void setup(integer dim, integer npts, real_type const *Y, integer ldY)
    -
    -
    -
    - -
    -
    -void setKnots(real_type const *X)
    -
    -
    -
    - -
    -
    -void setKnotsChordLength()
    -
    -
    -
    - -
    -
    -void setKnotsCentripetal()
    -
    -
    -
    - -
    -
    -void setKnotsFoley()
    -
    -
    -
    - -
    -
    -void CatmullRom()
    -
    -
    -
    - -
    -
    -real_type curvature(real_type x) const
    -
    -
    -
    - -
    -
    -real_type curvature_D(real_type x) const
    -
    -
    -
    - -
    -
    -virtual void setup(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline void build(GenericContainer const &gc)
    -
    -
    -
    - -
    -
    -inline virtual unsigned type() const
    -
    -
    -

    Return spline type (as number)

    -
    -
    - -
    -
    -string info() const
    -
    -
    -
    - -
    -
    -inline void info(ostream_type &stream) const
    -
    -
    -
    - -
    -
    -void dump_table(ostream_type &s, integer num_points) const
    -
    -
    -
    - -
    -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/class_view_hierarchy.html b/docs/api-cpp/class_view_hierarchy.html index 2ffca570..79d6855c 100644 --- a/docs/api-cpp/class_view_hierarchy.html +++ b/docs/api-cpp/class_view_hierarchy.html @@ -7,16 +7,26 @@ - Class Hierarchy — Splines documentation + Class Hierarchy — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -65,14 +75,72 @@

    Navigation

    Class Hierarchy

    -
    - + +
    @@ -86,13 +154,6 @@

    Class Hierarchy

    -
    -

    This Page

    - -
    +

    @@ -135,7 +205,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -144,7 +214,7 @@

    Navigation

    diff --git a/docs/api-cpp/define__splines_8hh_1a258c7c0530540979548721b55b2338c9.html b/docs/api-cpp/define_a00098_1a258c7c0530540979548721b55b2338c9.html similarity index 63% rename from docs/api-cpp/define__splines_8hh_1a258c7c0530540979548721b55b2338c9.html rename to docs/api-cpp/define_a00098_1a258c7c0530540979548721b55b2338c9.html index 1f94325f..900228b3 100644 --- a/docs/api-cpp/define__splines_8hh_1a258c7c0530540979548721b55b2338c9.html +++ b/docs/api-cpp/define_a00098_1a258c7c0530540979548721b55b2338c9.html @@ -7,16 +7,26 @@ - Define SPLINES_HH — Splines documentation + Define SPLINES_HH — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Define SPLINES_HH +

    Define SPLINES_HH

    Define Documentation

    -SPLINES_HH
    +SPLINES_HH
    @@ -100,33 +110,7 @@

    Define Documentation -
    -

    Previous page

    -

    ← Define SPLINES_CONFIG_HH

    -
    -
    -

    Next page

    -

    → Define SPLINES_UTILS_HH

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f.html b/docs/api-cpp/define_a00116_1a7dc7bbba00bb80a0e5d5c7c94497a07f.html similarity index 61% rename from docs/api-cpp/define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f.html rename to docs/api-cpp/define_a00116_1a7dc7bbba00bb80a0e5d5c7c94497a07f.html index cde805aa..efa393c3 100644 --- a/docs/api-cpp/define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f.html +++ b/docs/api-cpp/define_a00116_1a7dc7bbba00bb80a0e5d5c7c94497a07f.html @@ -7,16 +7,26 @@ - Define SPLINES_CONFIG_HH — Splines documentation + Define SPLINES_CONFIG_HH — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Define SPLINES_CONFIG_HH +

    Define SPLINES_CONFIG_HH

    Define Documentation

    -SPLINES_CONFIG_HH
    +SPLINES_CONFIG_HH
    @@ -100,33 +110,7 @@

    Define Documentation - -
    -

    Next page

    -

    → Define SPLINES_HH

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde.html b/docs/api-cpp/define_a00131_1a7d5567c4bd7d1851b7456989e413ccde.html similarity index 62% rename from docs/api-cpp/define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde.html rename to docs/api-cpp/define_a00131_1a7d5567c4bd7d1851b7456989e413ccde.html index ac3a59cd..9017e7ef 100644 --- a/docs/api-cpp/define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde.html +++ b/docs/api-cpp/define_a00131_1a7d5567c4bd7d1851b7456989e413ccde.html @@ -7,16 +7,26 @@ - Define SPLINES_UTILS_HH — Splines documentation + Define SPLINES_UTILS_HH — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Define SPLINES_UTILS_HH +

    Define SPLINES_UTILS_HH

    Define Documentation

    -SPLINES_UTILS_HH
    +SPLINES_UTILS_HH
    @@ -100,33 +110,7 @@

    Define Documentation -
    -

    Previous page

    -

    ← Define SPLINES_HH

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.html b/docs/api-cpp/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.html deleted file mode 100644 index 91a303b9..00000000 --- a/docs/api-cpp/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - Directory src — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - - -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe.html b/docs/api-cpp/enum_a00140_1a1678db4e652dc21a5a18803b3847eabe.html similarity index 54% rename from docs/api-cpp/enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe.html rename to docs/api-cpp/enum_a00140_1a1678db4e652dc21a5a18803b3847eabe.html index b8fedf33..99a848f4 100644 --- a/docs/api-cpp/enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe.html +++ b/docs/api-cpp/enum_a00140_1a1678db4e652dc21a5a18803b3847eabe.html @@ -7,16 +7,26 @@ - Enum REGION_ABCDEM — Splines documentation + Enum REGION_ABCDEM — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,58 +82,58 @@

    Navigation

    -

    Enum REGION_ABCDEM +

    Enum REGION_ABCDEM

    Enum Documentation

    -enum Splines::REGION_ABCDEM
    +enum Splines::REGION_ABCDEM

    Values:

    -enumerator region_A
    +enumerator region_A
    -enumerator region_B
    +enumerator region_B
    -enumerator region_C
    +enumerator region_C
    -enumerator region_D
    +enumerator region_D
    -enumerator region_E
    +enumerator region_E
    -enumerator region_M
    +enumerator region_M
    @@ -144,33 +154,7 @@

    Enum Documentation -
    -

    Previous page

    -

    ← Enum QUINTIC_SPLINE_TYPE

    -
    -
    -

    Next page

    -

    → Enum SplineType1D

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -214,14 +207,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -229,7 +222,7 @@

    Navigation

    diff --git a/docs/api-cpp/enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed.html b/docs/api-cpp/enum_a00140_1a96aa14ec624ad77d84a7e5afa435c1ed.html similarity index 56% rename from docs/api-cpp/enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed.html rename to docs/api-cpp/enum_a00140_1a96aa14ec624ad77d84a7e5afa435c1ed.html index 7762cf15..1bb613a0 100644 --- a/docs/api-cpp/enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed.html +++ b/docs/api-cpp/enum_a00140_1a96aa14ec624ad77d84a7e5afa435c1ed.html @@ -7,16 +7,26 @@ - Enum CUBIC_SPLINE_TYPE_BC — Splines documentation + Enum CUBIC_SPLINE_TYPE_BC — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,44 +82,44 @@

    Navigation

    -

    Enum CUBIC_SPLINE_TYPE_BC +

    Enum CUBIC_SPLINE_TYPE_BC

    Enum Documentation

    -enum Splines::CUBIC_SPLINE_TYPE_BC
    +enum Splines::CUBIC_SPLINE_TYPE_BC

    Values:

    -enumerator EXTRAPOLATE_BC
    +enumerator EXTRAPOLATE_BC
    -enumerator NATURAL_BC
    +enumerator NATURAL_BC
    -enumerator PARABOLIC_RUNOUT_BC
    +enumerator PARABOLIC_RUNOUT_BC
    -enumerator NOT_A_KNOT
    +enumerator NOT_A_KNOT
    @@ -130,33 +140,7 @@

    Enum Documentation -
    -

    Previous page

    -

    ← Class SplineVec

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -200,14 +193,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -215,7 +208,7 @@

    Navigation

    diff --git a/docs/api-cpp/enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7.html b/docs/api-cpp/enum_a00140_1aa6410df8c515cad4d238820f523fead7.html similarity index 55% rename from docs/api-cpp/enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7.html rename to docs/api-cpp/enum_a00140_1aa6410df8c515cad4d238820f523fead7.html index 7d97bfbd..978f62b0 100644 --- a/docs/api-cpp/enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7.html +++ b/docs/api-cpp/enum_a00140_1aa6410df8c515cad4d238820f523fead7.html @@ -7,16 +7,26 @@ - Enum SplineType2D — Splines documentation + Enum SplineType2D — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,45 +82,45 @@

    Navigation

    -

    Enum SplineType2D +

    Enum SplineType2D

    Enum Documentation

    -enum Splines::SplineType2D
    +enum Splines::SplineType2D

    Associate a number for each type of splines implemented.

    Values:

    -enumerator BILINEAR_TYPE
    +enumerator BILINEAR_TYPE
    -enumerator BICUBIC_TYPE
    +enumerator BICUBIC_TYPE
    -enumerator BIQUINTIC_TYPE
    +enumerator BIQUINTIC_TYPE
    -enumerator AKIMA2D_TYPE
    +enumerator AKIMA2D_TYPE
    @@ -131,33 +141,7 @@

    Enum Documentation -
    -

    Previous page

    -

    ← Enum SplineType1D

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -201,14 +194,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -216,7 +209,7 @@

    Navigation

    diff --git a/docs/api-cpp/enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb.html b/docs/api-cpp/enum_a00140_1afc8c082d2849822ca15bdf52cb4409fb.html similarity index 55% rename from docs/api-cpp/enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb.html rename to docs/api-cpp/enum_a00140_1afc8c082d2849822ca15bdf52cb4409fb.html index 565ca2bb..4c135c83 100644 --- a/docs/api-cpp/enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb.html +++ b/docs/api-cpp/enum_a00140_1afc8c082d2849822ca15bdf52cb4409fb.html @@ -7,16 +7,26 @@ - Enum QUINTIC_SPLINE_TYPE — Splines documentation + Enum QUINTIC_SPLINE_TYPE — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,44 +82,44 @@

    Navigation

    -

    Enum QUINTIC_SPLINE_TYPE +

    Enum QUINTIC_SPLINE_TYPE

    Enum Documentation

    -enum Splines::QUINTIC_SPLINE_TYPE
    +enum Splines::QUINTIC_SPLINE_TYPE

    Values:

    -enumerator CUBIC_QUINTIC
    +enumerator CUBIC_QUINTIC
    -enumerator PCHIP_QUINTIC
    +enumerator PCHIP_QUINTIC
    -enumerator AKIMA_QUINTIC
    +enumerator AKIMA_QUINTIC
    -enumerator BESSEL_QUINTIC
    +enumerator BESSEL_QUINTIC
    @@ -130,33 +140,7 @@

    Enum Documentation -
    -

    Previous page

    -

    ← Enum CUBIC_SPLINE_TYPE_BC

    -
    -
    -

    Next page

    -

    → Enum REGION_ABCDEM

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -200,14 +193,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -215,7 +208,7 @@

    Navigation

    diff --git a/docs/api-cpp/enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df.html b/docs/api-cpp/enum_a00140_1afebc3f20f002ddfdcbd2d725d1aa55df.html similarity index 51% rename from docs/api-cpp/enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df.html rename to docs/api-cpp/enum_a00140_1afebc3f20f002ddfdcbd2d725d1aa55df.html index f0fb3f20..b38ec5b9 100644 --- a/docs/api-cpp/enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df.html +++ b/docs/api-cpp/enum_a00140_1afebc3f20f002ddfdcbd2d725d1aa55df.html @@ -7,16 +7,26 @@ - Enum SplineType1D — Splines documentation + Enum SplineType1D — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,87 +82,87 @@

    Navigation

    -

    Enum SplineType1D +

    Enum SplineType1D

    Enum Documentation

    -enum Splines::SplineType1D
    +enum Splines::SplineType1D

    Associate a number for each type of splines implemented.

    Values:

    -enumerator CONSTANT_TYPE
    +enumerator CONSTANT_TYPE
    -enumerator LINEAR_TYPE
    +enumerator LINEAR_TYPE
    -enumerator CUBIC_TYPE
    +enumerator CUBIC_TYPE
    -enumerator AKIMA_TYPE
    +enumerator AKIMA_TYPE
    -enumerator BESSEL_TYPE
    +enumerator BESSEL_TYPE
    -enumerator PCHIP_TYPE
    +enumerator PCHIP_TYPE
    -enumerator QUINTIC_TYPE
    +enumerator QUINTIC_TYPE
    -enumerator HERMITE_TYPE
    +enumerator HERMITE_TYPE
    -enumerator SPLINE_SET_TYPE
    +enumerator SPLINE_SET_TYPE
    -enumerator SPLINE_VEC_TYPE
    +enumerator SPLINE_VEC_TYPE
    @@ -173,33 +183,7 @@

    Enum Documentation -
    -

    Previous page

    -

    ← Enum REGION_ABCDEM

    -
    -
    -

    Next page

    -

    → Enum SplineType2D

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -243,14 +236,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -258,7 +251,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.html b/docs/api-cpp/file_SplineAkima.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.html rename to docs/api-cpp/file_SplineAkima.cc.html index 033668d5..a27f4809 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.html +++ b/docs/api-cpp/file_SplineAkima.cc.html @@ -7,16 +7,26 @@ - File SplineAkima.cc — Splines documentation + File SplineAkima.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineAkima.cc +

    File SplineAkima.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -110,25 +119,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -171,7 +171,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -180,7 +180,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.html b/docs/api-cpp/file_SplineAkima.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.html rename to docs/api-cpp/file_SplineAkima.hxx.html index df205c66..b18016e0 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.html +++ b/docs/api-cpp/file_SplineAkima.hxx.html @@ -7,16 +7,26 @@ - File SplineAkima.hxx — Splines documentation + File SplineAkima.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplineAkima.hxx +

    File SplineAkima.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.html b/docs/api-cpp/file_SplineAkima2D.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.html rename to docs/api-cpp/file_SplineAkima2D.cc.html index 35b720b8..d5d59ca5 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.html +++ b/docs/api-cpp/file_SplineAkima2D.cc.html @@ -7,16 +7,26 @@ - File SplineAkima2D.cc — Splines documentation + File SplineAkima2D.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineAkima2D.cc +

    File SplineAkima2D.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima2D.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -111,25 +120,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -172,7 +172,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -181,7 +181,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.html b/docs/api-cpp/file_SplineAkima2D.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.html rename to docs/api-cpp/file_SplineAkima2D.hxx.html index e27c8124..5ad3bdf9 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.html +++ b/docs/api-cpp/file_SplineAkima2D.hxx.html @@ -7,16 +7,26 @@ - File SplineAkima2D.hxx — Splines documentation + File SplineAkima2D.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplineAkima2D.hxx +

    File SplineAkima2D.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima2D.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.html b/docs/api-cpp/file_SplineBessel.cc.html similarity index 60% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.html rename to docs/api-cpp/file_SplineBessel.cc.html index 4a9de599..5e44d7e6 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.html +++ b/docs/api-cpp/file_SplineBessel.cc.html @@ -7,16 +7,26 @@ - File SplineBessel.cc — Splines documentation + File SplineBessel.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineBessel.cc +

    File SplineBessel.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBessel.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -109,25 +118,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -170,7 +170,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -179,7 +179,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.html b/docs/api-cpp/file_SplineBessel.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.html rename to docs/api-cpp/file_SplineBessel.hxx.html index b5293146..b14d53f5 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.html +++ b/docs/api-cpp/file_SplineBessel.hxx.html @@ -7,16 +7,26 @@ - File SplineBessel.hxx — Splines documentation + File SplineBessel.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplineBessel.hxx +

    File SplineBessel.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBessel.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.html b/docs/api-cpp/file_SplineBiCubic.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.html rename to docs/api-cpp/file_SplineBiCubic.cc.html index f95502e4..5363c71d 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.html +++ b/docs/api-cpp/file_SplineBiCubic.cc.html @@ -7,16 +7,26 @@ - File SplineBiCubic.cc — Splines documentation + File SplineBiCubic.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineBiCubic.cc +

    File SplineBiCubic.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiCubic.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -111,25 +120,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -172,7 +172,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -181,7 +181,7 @@

    Navigation

    diff --git a/docs/api-cpp/file_SplineBiCubic.hxx.html b/docs/api-cpp/file_SplineBiCubic.hxx.html new file mode 100644 index 00000000..c33d3582 --- /dev/null +++ b/docs/api-cpp/file_SplineBiCubic.hxx.html @@ -0,0 +1,195 @@ + + + + + + + + + + File SplineBiCubic.hxx — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    File SplineBiCubic.hxx +

    + +
    +

    Definition (SplineBiCubic.hxx) +

    + +
    +
    +

    Included By +

    + +
    +
    +

    Namespaces +

    + +
    + +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.html b/docs/api-cpp/file_SplineBiQuintic.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.html rename to docs/api-cpp/file_SplineBiQuintic.cc.html index 94721daa..d95eb043 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.html +++ b/docs/api-cpp/file_SplineBiQuintic.cc.html @@ -7,16 +7,26 @@ - File SplineBiQuintic.cc — Splines documentation + File SplineBiQuintic.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineBiQuintic.cc +

    File SplineBiQuintic.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiQuintic.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -111,25 +120,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -172,7 +172,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -181,7 +181,7 @@

    Navigation

    diff --git a/docs/api-cpp/file_SplineBiQuintic.hxx.html b/docs/api-cpp/file_SplineBiQuintic.hxx.html new file mode 100644 index 00000000..1b90d60e --- /dev/null +++ b/docs/api-cpp/file_SplineBiQuintic.hxx.html @@ -0,0 +1,195 @@ + + + + + + + + + + File SplineBiQuintic.hxx — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    File SplineBiQuintic.hxx +

    + +
    +

    Definition (SplineBiQuintic.hxx) +

    + +
    +
    +

    Included By +

    + +
    +
    +

    Namespaces +

    + +
    + +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.html b/docs/api-cpp/file_SplineBilinear.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.html rename to docs/api-cpp/file_SplineBilinear.cc.html index c840532e..3af6b3d4 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.html +++ b/docs/api-cpp/file_SplineBilinear.cc.html @@ -7,16 +7,26 @@ - File SplineBilinear.cc — Splines documentation + File SplineBilinear.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineBilinear.cc +

    File SplineBilinear.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBilinear.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -111,25 +120,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -172,7 +172,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -181,7 +181,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.html b/docs/api-cpp/file_SplineBilinear.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.html rename to docs/api-cpp/file_SplineBilinear.hxx.html index eb3f2ce9..15d11cd0 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.html +++ b/docs/api-cpp/file_SplineBilinear.hxx.html @@ -7,16 +7,26 @@ - File SplineBilinear.hxx — Splines documentation + File SplineBilinear.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplineBilinear.hxx +

    File SplineBilinear.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBilinear.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.html b/docs/api-cpp/file_SplineConstant.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.html rename to docs/api-cpp/file_SplineConstant.cc.html index 83f591bf..83459c38 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.html +++ b/docs/api-cpp/file_SplineConstant.cc.html @@ -7,16 +7,26 @@ - File SplineConstant.cc — Splines documentation + File SplineConstant.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineConstant.cc +

    File SplineConstant.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineConstant.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -110,25 +119,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -171,7 +171,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -180,7 +180,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.html b/docs/api-cpp/file_SplineConstant.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.html rename to docs/api-cpp/file_SplineConstant.hxx.html index d3f2771f..f969629d 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.html +++ b/docs/api-cpp/file_SplineConstant.hxx.html @@ -7,16 +7,26 @@ - File SplineConstant.hxx — Splines documentation + File SplineConstant.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplineConstant.hxx +

    File SplineConstant.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineConstant.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.html b/docs/api-cpp/file_SplineCubic.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.html rename to docs/api-cpp/file_SplineCubic.cc.html index 417be688..12f8e946 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.html +++ b/docs/api-cpp/file_SplineCubic.cc.html @@ -7,16 +7,26 @@ - File SplineCubic.cc — Splines documentation + File SplineCubic.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineCubic.cc +

    File SplineCubic.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubic.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -109,25 +118,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -170,7 +170,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -179,7 +179,7 @@

    Navigation

    diff --git a/docs/api-cpp/file_SplineCubic.hxx.html b/docs/api-cpp/file_SplineCubic.hxx.html new file mode 100644 index 00000000..51c94d02 --- /dev/null +++ b/docs/api-cpp/file_SplineCubic.hxx.html @@ -0,0 +1,202 @@ + + + + + + + + + + File SplineCubic.hxx — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    File SplineCubic.hxx +

    + +
    +

    Definition (SplineCubic.hxx) +

    + +
    +
    +

    Included By +

    + +
    +
    +

    Namespaces +

    + +
    +
    +

    Classes +

    + +
    + +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/file_SplineCubicBase.cc.html b/docs/api-cpp/file_SplineCubicBase.cc.html new file mode 100644 index 00000000..06811d0c --- /dev/null +++ b/docs/api-cpp/file_SplineCubicBase.cc.html @@ -0,0 +1,180 @@ + + + + + + + + + + File SplineCubicBase.cc — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    File SplineCubicBase.cc +

    + +
    +

    Definition (SplineCubicBase.cc) +

    + +
    +
    +

    Includes +

    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.html b/docs/api-cpp/file_SplineHermite.cc.html similarity index 60% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.html rename to docs/api-cpp/file_SplineHermite.cc.html index 212110a3..e7da4d62 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.html +++ b/docs/api-cpp/file_SplineHermite.cc.html @@ -7,16 +7,26 @@ - File SplineHermite.cc — Splines documentation + File SplineHermite.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineHermite.cc +

    File SplineHermite.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineHermite.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -109,25 +118,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -170,7 +170,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -179,7 +179,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.html b/docs/api-cpp/file_SplineHermite.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.html rename to docs/api-cpp/file_SplineHermite.hxx.html index a9928db5..484719ee 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.html +++ b/docs/api-cpp/file_SplineHermite.hxx.html @@ -7,16 +7,26 @@ - File SplineHermite.hxx — Splines documentation + File SplineHermite.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplineHermite.hxx +

    File SplineHermite.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineHermite.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.html b/docs/api-cpp/file_SplineLinear.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.html rename to docs/api-cpp/file_SplineLinear.cc.html index 88443efb..c2ac42ac 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.html +++ b/docs/api-cpp/file_SplineLinear.cc.html @@ -7,16 +7,26 @@ - File SplineLinear.cc — Splines documentation + File SplineLinear.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineLinear.cc +

    File SplineLinear.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineLinear.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -110,25 +119,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -171,7 +171,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -180,7 +180,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.html b/docs/api-cpp/file_SplineLinear.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.html rename to docs/api-cpp/file_SplineLinear.hxx.html index 660c62f0..3ad3ebb7 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.html +++ b/docs/api-cpp/file_SplineLinear.hxx.html @@ -7,16 +7,26 @@ - File SplineLinear.hxx — Splines documentation + File SplineLinear.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplineLinear.hxx +

    File SplineLinear.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineLinear.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.html b/docs/api-cpp/file_SplinePchip.cc.html similarity index 53% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.html rename to docs/api-cpp/file_SplinePchip.cc.html index 868ffb90..dce6e336 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.html +++ b/docs/api-cpp/file_SplinePchip.cc.html @@ -7,16 +7,26 @@ - File SplineQuintic.cc — Splines documentation + File SplinePchip.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,9 +59,9 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -62,24 +72,25 @@

    Navigation

    -
    -

    File SplineQuintic.cc +
    +

    File SplinePchip.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuintic.cc) + @@ -87,8 +98,8 @@

    Definition (/Us

    Includes

    @@ -99,6 +110,25 @@

    NamespacesNamespace Splines

    +
    +

    Enums +

    + +
    +

    @@ -111,25 +141,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -172,16 +193,16 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.html b/docs/api-cpp/file_SplinePchip.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.html rename to docs/api-cpp/file_SplinePchip.hxx.html index a8c48736..3e145d16 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.html +++ b/docs/api-cpp/file_SplinePchip.hxx.html @@ -7,16 +7,26 @@ - File SplinePchip.hxx — Splines documentation + File SplinePchip.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplinePchip.hxx +

    File SplinePchip.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinePchip.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file_SplineQuintic.cc.html b/docs/api-cpp/file_SplineQuintic.cc.html new file mode 100644 index 00000000..ab9352fb --- /dev/null +++ b/docs/api-cpp/file_SplineQuintic.cc.html @@ -0,0 +1,188 @@ + + + + + + + + + + File SplineQuintic.cc — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    File SplineQuintic.cc +

    + +
    +

    Definition (SplineQuintic.cc) +

    + +
    +
    +

    Includes +

    + +
    +
    +

    Namespaces +

    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/file_SplineQuintic.hxx.html b/docs/api-cpp/file_SplineQuintic.hxx.html new file mode 100644 index 00000000..ad02175d --- /dev/null +++ b/docs/api-cpp/file_SplineQuintic.hxx.html @@ -0,0 +1,202 @@ + + + + + + + + + + File SplineQuintic.hxx — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    File SplineQuintic.hxx +

    + +
    +

    Definition (SplineQuintic.hxx) +

    + +
    +
    +

    Included By +

    + +
    +
    +

    Namespaces +

    + +
    +
    +

    Classes +

    + +
    + +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.html b/docs/api-cpp/file_SplineQuinticBase.cc.html similarity index 60% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.html rename to docs/api-cpp/file_SplineQuinticBase.cc.html index 401dddcd..7fbe1b3d 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.html +++ b/docs/api-cpp/file_SplineQuinticBase.cc.html @@ -7,16 +7,26 @@ - File SplineQuinticBase.cc — Splines documentation + File SplineQuinticBase.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineQuinticBase.cc +

    File SplineQuinticBase.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuinticBase.cc) + @@ -87,7 +96,8 @@

    Definition (/Us

    Includes

    @@ -110,25 +120,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -171,7 +172,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -180,7 +181,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.html b/docs/api-cpp/file_SplineQuinticBase.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.html rename to docs/api-cpp/file_SplineQuinticBase.hxx.html index e20eae21..73fbb47a 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.html +++ b/docs/api-cpp/file_SplineQuinticBase.hxx.html @@ -7,16 +7,26 @@ - File SplineQuinticBase.hxx — Splines documentation + File SplineQuinticBase.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplineQuinticBase.hxx +

    File SplineQuinticBase.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuinticBase.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.html b/docs/api-cpp/file_SplineSet.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.html rename to docs/api-cpp/file_SplineSet.cc.html index cb23b57d..c90621b9 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.html +++ b/docs/api-cpp/file_SplineSet.cc.html @@ -7,16 +7,26 @@ - File SplineSet.cc — Splines documentation + File SplineSet.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineSet.cc +

    File SplineSet.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSet.cc) + @@ -88,8 +97,8 @@

    Includes
  • PolynomialRoots.hh

  • -
  • Splines.hh (File Splines.hh)

  • -
  • SplinesUtils.hh (File SplinesUtils.hh)

  • +
  • Splines.hh (File Splines.hh)

  • +
  • SplinesUtils.hh (File SplinesUtils.hh)

  • cmath

  • limits

  • @@ -113,25 +122,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -174,7 +174,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -183,7 +183,7 @@

    Navigation

    diff --git a/docs/api-cpp/file_SplineSet.hxx.html b/docs/api-cpp/file_SplineSet.hxx.html new file mode 100644 index 00000000..37c914fa --- /dev/null +++ b/docs/api-cpp/file_SplineSet.hxx.html @@ -0,0 +1,195 @@ + + + + + + + + + + File SplineSet.hxx — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    File SplineSet.hxx +

    + +
    +

    Definition (SplineSet.hxx) +

    + +
    +
    +

    Included By +

    + +
    +
    +

    Namespaces +

    + +
    + +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.html b/docs/api-cpp/file_SplineSetGC.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.html rename to docs/api-cpp/file_SplineSetGC.cc.html index 4706150f..90b0a011 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.html +++ b/docs/api-cpp/file_SplineSetGC.cc.html @@ -7,16 +7,26 @@ - File SplineSetGC.cc — Splines documentation + File SplineSetGC.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineSetGC.cc +

    File SplineSetGC.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSetGC.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -111,25 +120,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -172,7 +172,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -181,7 +181,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.html b/docs/api-cpp/file_SplineVec.cc.html similarity index 62% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.html rename to docs/api-cpp/file_SplineVec.cc.html index e5d64945..06e678db 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.html +++ b/docs/api-cpp/file_SplineVec.cc.html @@ -7,16 +7,26 @@ - File SplineVec.cc — Splines documentation + File SplineVec.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplineVec.cc +

    File SplineVec.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineVec.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -111,25 +120,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -172,7 +172,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -181,7 +181,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.html b/docs/api-cpp/file_SplineVec.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.html rename to docs/api-cpp/file_SplineVec.hxx.html index fa675e2d..24168622 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.html +++ b/docs/api-cpp/file_SplineVec.hxx.html @@ -7,16 +7,26 @@ - File SplineVec.hxx — Splines documentation + File SplineVec.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplineVec.hxx +

    File SplineVec.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineVec.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.html b/docs/api-cpp/file_Splines.cc.html similarity index 50% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.html rename to docs/api-cpp/file_Splines.cc.html index 687003c9..89710815 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.html +++ b/docs/api-cpp/file_Splines.cc.html @@ -7,16 +7,26 @@ - File Splines.cc — Splines documentation + File Splines.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,25 +73,24 @@

    Navigation

    @@ -133,27 +143,7 @@

    Variables -
    -

    This Page

    - -
    +

    +

    @@ -196,7 +195,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -205,7 +204,7 @@

    Navigation

    diff --git a/docs/api-cpp/file_Splines.hh.html b/docs/api-cpp/file_Splines.hh.html new file mode 100644 index 00000000..68c438bc --- /dev/null +++ b/docs/api-cpp/file_Splines.hh.html @@ -0,0 +1,282 @@ + + + + + + + + + + File Splines.hh — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    File Splines.hh +

    + +
    +

    Definition (Splines.hh) +

    + +
    +
    +

    Includes +

    + +
    + +
    +

    Namespaces +

    + +
    + + + +
    +

    Defines +

    + +
    + +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/file_Splines1D.cc.html b/docs/api-cpp/file_Splines1D.cc.html new file mode 100644 index 00000000..a24784e2 --- /dev/null +++ b/docs/api-cpp/file_Splines1D.cc.html @@ -0,0 +1,194 @@ + + + + + + + + + + File Splines1D.cc — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    File Splines1D.cc +

    + +
    +

    Definition (Splines1D.cc) +

    + +
    +
    +

    Includes +

    + +
    +
    +

    Namespaces +

    + +
    + +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.html b/docs/api-cpp/file_Splines1D.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.html rename to docs/api-cpp/file_Splines1D.hxx.html index 15560335..0585bb67 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.html +++ b/docs/api-cpp/file_Splines1D.hxx.html @@ -7,16 +7,26 @@ - File Splines1D.hxx — Splines documentation + File Splines1D.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File Splines1D.hxx +

    File Splines1D.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines1D.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.html b/docs/api-cpp/file_Splines2D.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.html rename to docs/api-cpp/file_Splines2D.cc.html index 9e1cc074..a994d257 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.html +++ b/docs/api-cpp/file_Splines2D.cc.html @@ -7,16 +7,26 @@ - File Splines2D.cc — Splines documentation + File Splines2D.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File Splines2D.cc +

    File Splines2D.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines2D.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -109,25 +118,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -170,7 +170,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -179,7 +179,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.html b/docs/api-cpp/file_Splines2D.hxx.html similarity index 58% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.html rename to docs/api-cpp/file_Splines2D.hxx.html index 083e6613..ca2cc0f7 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.html +++ b/docs/api-cpp/file_Splines2D.hxx.html @@ -7,16 +7,26 @@ - File Splines2D.hxx — Splines documentation + File Splines2D.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File Splines2D.hxx +

    File Splines2D.hxx

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines2D.hxx) + @@ -88,7 +97,7 @@

    Definition (/Us

    Included By

    @@ -102,7 +111,7 @@

    Namespaces

    @@ -117,26 +126,7 @@

    Classes -
    -

    This Page

    - -
    +

    +

    @@ -179,7 +178,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +187,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.html b/docs/api-cpp/file_SplinesBivariate.cc.html similarity index 61% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.html rename to docs/api-cpp/file_SplinesBivariate.cc.html index ae11eb8a..ddb75165 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.html +++ b/docs/api-cpp/file_SplinesBivariate.cc.html @@ -7,16 +7,26 @@ - File SplinesBivariate.cc — Splines documentation + File SplinesBivariate.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplinesBivariate.cc +

    File SplinesBivariate.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesBivariate.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -111,25 +120,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -172,7 +172,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -181,7 +181,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.html b/docs/api-cpp/file_SplinesConfig.hh.html similarity index 56% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.html rename to docs/api-cpp/file_SplinesConfig.hh.html index 023d757b..0c7d0a3c 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.html +++ b/docs/api-cpp/file_SplinesConfig.hh.html @@ -7,16 +7,26 @@ - File SplinesConfig.hh — Splines documentation + File SplinesConfig.hh — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,24 +73,23 @@

    Navigation

    -

    File SplinesConfig.hh +

    File SplinesConfig.hh

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesConfig.hh) + @@ -89,21 +98,21 @@

    Includes
  • GenericContainer.hh

  • -
  • Utils.hh (File SplinesUtils.hh)

  • +
  • Utils.hh (File SplinesUtils.hh)

  • @@ -118,26 +127,7 @@

    Defines -
    -

    This Page

    - -
    +

    +

    @@ -180,7 +179,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -189,7 +188,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.html b/docs/api-cpp/file_SplinesUtils.cc.html similarity index 60% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.html rename to docs/api-cpp/file_SplinesUtils.cc.html index 9661a208..11930052 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.html +++ b/docs/api-cpp/file_SplinesUtils.cc.html @@ -7,16 +7,26 @@ - File SplinesUtils.cc — Splines documentation + File SplinesUtils.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,23 +73,22 @@

    Navigation

    -

    File SplinesUtils.cc +

    File SplinesUtils.cc

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesUtils.cc) + @@ -87,7 +96,7 @@

    Definition (/Us

    Includes

    @@ -109,25 +118,7 @@

    Namespaces -
    -

    This Page

    - -
    +

    +

    @@ -170,7 +170,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -179,7 +179,7 @@

    Navigation

    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.html b/docs/api-cpp/file_SplinesUtils.hh.html similarity index 56% rename from docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.html rename to docs/api-cpp/file_SplinesUtils.hh.html index b3fce5ba..13820739 100644 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.html +++ b/docs/api-cpp/file_SplinesUtils.hh.html @@ -7,16 +7,26 @@ - File Splines1D.cc — Splines documentation + File SplinesUtils.hh — Splines v1.0.9 + + + + + + + + + + @@ -49,9 +59,9 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -62,25 +72,25 @@

    Navigation

    -
    -

    File Splines1D.cc +
    +

    File SplinesUtils.hh

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines1D.cc) + @@ -88,7 +98,18 @@

    Definition (/Us

    Includes

    +

    +
    @@ -98,11 +119,11 @@

    NamespacesNamespace Splines

    - @@ -117,26 +138,7 @@

    Functions -
    -

    This Page

    - -
    +

    +

    @@ -179,16 +190,16 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.html b/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.html deleted file mode 100644 index 398ec193..00000000 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - File SplineBiCubic.hxx — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    File SplineBiCubic.hxx -

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    - -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiCubic.hxx) -

    - -
    -
    -

    Included By -

    - -
    -
    -

    Namespaces -

    - -
    - -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.html b/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.html deleted file mode 100644 index 88c3e289..00000000 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - File SplineBiQuintic.hxx — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    File SplineBiQuintic.hxx -

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    - -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiQuintic.hxx) -

    - -
    -
    -

    Included By -

    - -
    -
    -

    Namespaces -

    - -
    - -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.html b/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.html deleted file mode 100644 index 9881226f..00000000 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - - - - File SplineCubic.hxx — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    File SplineCubic.hxx -

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    - -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubic.hxx) -

    - -
    -
    -

    Included By -

    - -
    -
    -

    Namespaces -

    - -
    -
    -

    Classes -

    - -
    - -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.html b/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.html deleted file mode 100644 index a50ae7cb..00000000 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - File SplineCubicBase.cc — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    File SplineCubicBase.cc -

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    - -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubicBase.cc) -

    - -
    -
    -

    Includes -

    - -
    -
    -

    Namespaces -

    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.html b/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.html deleted file mode 100644 index 4c6dc84f..00000000 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - - - - File SplinePchip.cc — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    File SplinePchip.cc -

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    - -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinePchip.cc) -

    - -
    -
    -

    Includes -

    - -
    -
    -

    Namespaces -

    - -
    -
    -

    Enums -

    - -
    - -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.html b/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.html deleted file mode 100644 index d1e691ad..00000000 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - - - - File SplineQuintic.hxx — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    File SplineQuintic.hxx -

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    - -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuintic.hxx) -

    - -
    -
    -

    Included By -

    - -
    -
    -

    Namespaces -

    - -
    -
    -

    Classes -

    - -
    - -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.html b/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.html deleted file mode 100644 index b0b26c37..00000000 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - File SplineSet.hxx — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    File SplineSet.hxx -

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    - -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSet.hxx) -

    - -
    -
    -

    Included By -

    - -
    -
    -

    Namespaces -

    - -
    - -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.html b/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.html deleted file mode 100644 index 49d87517..00000000 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - - - - - File Splines.hh — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    File Splines.hh -

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    - -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines.hh) -

    - -
    -
    -

    Includes -

    - -
    - -
    -

    Namespaces -

    - -
    - - - -
    -

    Defines -

    - -
    - -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.html b/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.html deleted file mode 100644 index b625bc24..00000000 --- a/docs/api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - File SplinesUtils.hh — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    File SplinesUtils.hh -

    -

    Parent directory (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src)

    - -
    -

    Definition (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesUtils.hh) -

    - -
    -
    -

    Includes -

    - -
    - -
    -

    Namespaces -

    - -
    -
    -

    Defines -

    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/file_view_hierarchy.html b/docs/api-cpp/file_view_hierarchy.html index 15c48ecd..24bd69a2 100644 --- a/docs/api-cpp/file_view_hierarchy.html +++ b/docs/api-cpp/file_view_hierarchy.html @@ -7,16 +7,26 @@ - File Hierarchy — Splines documentation + File Hierarchy — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -65,14 +75,98 @@

    Navigation

    File Hierarchy

    -
    - + +
    @@ -86,13 +180,6 @@

    File Hierarchy

    -
    -

    This Page

    - -
    + @@ -135,7 +231,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -144,7 +240,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca.html b/docs/api-cpp/function_a00140_1a22872cf871ce7a12ecda3a1f8d8e6cca.html similarity index 53% rename from docs/api-cpp/function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca.html rename to docs/api-cpp/function_a00140_1a22872cf871ce7a12ecda3a1f8d8e6cca.html index d657e78a..483a7435 100644 --- a/docs/api-cpp/function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca.html +++ b/docs/api-cpp/function_a00140_1a22872cf871ce7a12ecda3a1f8d8e6cca.html @@ -7,16 +7,26 @@ - Function Splines::Pchip_build_new — Splines documentation + Function Splines::Pchip_build_new — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::Pchip_build_new +

    Function Splines::Pchip_build_new

    Function Documentation

    -static void Splines::Pchip_build_new(real_type const *X, real_type const *Y, real_type *Yp, integer npts)
    +static void Splines::Pchip_build_new(real_type const *X, real_type const *Y, real_type *Yp, integer npts)
    @@ -100,33 +110,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function Splines::Pchip_build

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_a00140_1a228f7065a249b0c10a9886fdc85f05f9.html b/docs/api-cpp/function_a00140_1a228f7065a249b0c10a9886fdc85f05f9.html new file mode 100644 index 00000000..fd38610c --- /dev/null +++ b/docs/api-cpp/function_a00140_1a228f7065a249b0c10a9886fdc85f05f9.html @@ -0,0 +1,200 @@ + + + + + + + + + + Function Splines::centripetal — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Function Splines::centripetal +

    + +
    +

    Function Documentation +

    +
    +
    +void Splines::centripetal(integer dim, integer npts, real_type const *pnts, integer ld_pnts, real_type alpha, real_type *t)
    +
    +
    +

    Compute nodes for the spline using centripetal distribution

    +
    +
    Parameters
    +
    +
      +
    • dim[in] dimension of the points

    • +
    • npts[in] number of points

    • +
    • pnts[in] matrix whose columns are the points

    • +
    • ld_pnts[in] leading dimension of the matrix (fortran storage)

    • +
    • alpha[in] power factor

    • +
    • t[out] vector of the computed nodes

    • +
    +
    +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016.html b/docs/api-cpp/function_a00140_1a4a9fd3c1d8de964d95d730668e6b6016.html similarity index 54% rename from docs/api-cpp/function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016.html rename to docs/api-cpp/function_a00140_1a4a9fd3c1d8de964d95d730668e6b6016.html index 14527c9e..2cf36ca5 100644 --- a/docs/api-cpp/function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016.html +++ b/docs/api-cpp/function_a00140_1a4a9fd3c1d8de964d95d730668e6b6016.html @@ -7,16 +7,26 @@ - Function Splines::checkCubicSplineMonotonicity — Splines documentation + Function Splines::checkCubicSplineMonotonicity — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::checkCubicSplineMonotonicity +

    Function Splines::checkCubicSplineMonotonicity

    Function Documentation

    -integer Splines::checkCubicSplineMonotonicity(real_type const *X, real_type const *Y, real_type const *Yp, integer npts)
    +integer Splines::checkCubicSplineMonotonicity(real_type const *X, real_type const *Y, real_type const *Yp, integer npts)

    Check if cubic spline with this data is monotone, return -1 no, 0 yes, 1 strictly monotone.

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function Splines::centripetal

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02.html b/docs/api-cpp/function_a00140_1a4fe6464c49b4bba331d9751598a44f02.html similarity index 56% rename from docs/api-cpp/function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02.html rename to docs/api-cpp/function_a00140_1a4fe6464c49b4bba331d9751598a44f02.html index 78233616..4d418fed 100644 --- a/docs/api-cpp/function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02.html +++ b/docs/api-cpp/function_a00140_1a4fe6464c49b4bba331d9751598a44f02.html @@ -7,16 +7,26 @@ - Function Splines::signTest — Splines documentation + Function Splines::signTest — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::signTest +

    Function Splines::signTest

    Function Documentation

    -static inline int Splines::signTest(real_type const a, real_type const b)
    +static inline int Splines::signTest(real_type const a, real_type const b)
    @@ -100,33 +110,7 @@

    Function Documentation - - -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00.html b/docs/api-cpp/function_a00140_1a62d87177bbdb8da9a92701e528c57f00.html similarity index 56% rename from docs/api-cpp/function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00.html rename to docs/api-cpp/function_a00140_1a62d87177bbdb8da9a92701e528c57f00.html index 1ddf5dcc..bc26ae9a 100644 --- a/docs/api-cpp/function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00.html +++ b/docs/api-cpp/function_a00140_1a62d87177bbdb8da9a92701e528c57f00.html @@ -7,16 +7,26 @@ - Function Splines::curvature_DD — Splines documentation + Function Splines::curvature_DD — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::curvature_DD +

    Function Splines::curvature_DD

    Function Documentation

    -real_type Splines::curvature_DD(real_type s, Spline const &X, Spline const &Y)
    +real_type Splines::curvature_DD(real_type s, Spline const &X, Spline const &Y)

    compute curvature second derivative of a planar curve

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function Splines::curvature_D

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549.html b/docs/api-cpp/function_a00140_1a64d0e892133ce06e0a3577c3bea0f549.html similarity index 55% rename from docs/api-cpp/function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549.html rename to docs/api-cpp/function_a00140_1a64d0e892133ce06e0a3577c3bea0f549.html index 356b89e7..1cab8bc3 100644 --- a/docs/api-cpp/function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549.html +++ b/docs/api-cpp/function_a00140_1a64d0e892133ce06e0a3577c3bea0f549.html @@ -7,16 +7,26 @@ - Function Splines::get_region — Splines documentation + Function Splines::get_region — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::get_region +

    Function Splines::get_region

    Function Documentation

    -static REGION_ABCDEM Splines::get_region(real_type alpha, real_type beta)
    +static REGION_ABCDEM Splines::get_region(real_type alpha, real_type beta)
    @@ -100,33 +110,7 @@

    Function Documentation - - -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04.html b/docs/api-cpp/function_a00140_1a8c7e2a599a7e341f0d8751b1bccb9a04.html similarity index 57% rename from docs/api-cpp/function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04.html rename to docs/api-cpp/function_a00140_1a8c7e2a599a7e341f0d8751b1bccb9a04.html index d1486f91..8f1278e5 100644 --- a/docs/api-cpp/function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04.html +++ b/docs/api-cpp/function_a00140_1a8c7e2a599a7e341f0d8751b1bccb9a04.html @@ -7,16 +7,26 @@ - Function Splines::new_Spline1D — Splines documentation + Function Splines::new_Spline1D — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::new_Spline1D +

    Function Splines::new_Spline1D

    Function Documentation

    -static Spline *Splines::new_Spline1D(string const &_name, SplineType1D tp)
    +static Spline *Splines::new_Spline1D(string const &_name, SplineType1D tp)
    @@ -100,33 +110,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function Splines::min_abs

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7.html b/docs/api-cpp/function_a00140_1a91c8806be0fd7584311f74dffe3ae3f7.html similarity index 50% rename from docs/api-cpp/function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7.html rename to docs/api-cpp/function_a00140_1a91c8806be0fd7584311f74dffe3ae3f7.html index 7b67729d..a39be844 100644 --- a/docs/api-cpp/function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7.html +++ b/docs/api-cpp/function_a00140_1a91c8806be0fd7584311f74dffe3ae3f7.html @@ -7,16 +7,26 @@ - Function Splines::uniform — Splines documentation + Function Splines::uniform — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,34 +82,32 @@

    Navigation

    -

    Function Splines::uniform +

    Function Splines::uniform

    Function Documentation

    -void Splines::uniform(integer, integer npts, real_type const*, integer, real_type *t)
    +void Splines::uniform(integer, integer npts, real_type const*, integer, real_type *t)

    Compute nodes for the spline using uniform distribution

    -

    -
    -
    Parameters
    -
    -
      -
    • [in] dim: dimension of the points

    • -
    • [in] npts: number of points

    • -
    • [in] pnts: matrix whose columns are the points

    • -
    • [in] ld_pnts: leading dimension of the matrix (fortran storage)

    • -
    • [out] t: vector of the computed nodes

    • +
      +
      Parameters
      +
      +
        +
      • dim[in] dimension of the points

      • +
      • npts[in] number of points

      • +
      • pnts[in] matrix whose columns are the points

      • +
      • ld_pnts[in] leading dimension of the matrix (fortran storage)

      • +
      • t[out] vector of the computed nodes

      -
    @@ -116,33 +124,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function Splines::signTest

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -186,14 +177,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -201,7 +192,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_a00140_1a9437a6461e2735153715bb43bc7d734f.html b/docs/api-cpp/function_a00140_1a9437a6461e2735153715bb43bc7d734f.html new file mode 100644 index 00000000..88adc623 --- /dev/null +++ b/docs/api-cpp/function_a00140_1a9437a6461e2735153715bb43bc7d734f.html @@ -0,0 +1,199 @@ + + + + + + + + + + Function Splines::universal — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Function Splines::universal +

    + +
    +

    Function Documentation +

    +
    +
    +void Splines::universal(integer dim, integer npts, real_type const *pnts, integer ld_pnts, real_type *t)
    +
    +
    +

    Compute nodes for the spline using universal distribution

    +
    +
    Parameters
    +
    +
      +
    • dim[in] dimension of the points

    • +
    • npts[in] number of points

    • +
    • pnts[in] matrix whose columns are the points

    • +
    • ld_pnts[in] leading dimension of the matrix (fortran storage)

    • +
    • t[out] vector of the computed nodes

    • +
    +
    +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41.html b/docs/api-cpp/function_a00140_1a94d2862da920a586358451ce3b3bcb41.html similarity index 56% rename from docs/api-cpp/function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41.html rename to docs/api-cpp/function_a00140_1a94d2862da920a586358451ce3b3bcb41.html index 43a38af7..3c6af659 100644 --- a/docs/api-cpp/function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41.html +++ b/docs/api-cpp/function_a00140_1a94d2862da920a586358451ce3b3bcb41.html @@ -7,16 +7,26 @@ - Function Splines::curvature — Splines documentation + Function Splines::curvature — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::curvature +

    Function Splines::curvature

    Function Documentation

    -real_type Splines::curvature(real_type s, Spline const &X, Spline const &Y)
    +real_type Splines::curvature(real_type s, Spline const &X, Spline const &Y)

    compute curvature of a planar curve

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function Splines::chordal

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_a00140_1ab131f65c6191734b6f2e502257b57d0f.html b/docs/api-cpp/function_a00140_1ab131f65c6191734b6f2e502257b57d0f.html new file mode 100644 index 00000000..c3f67622 --- /dev/null +++ b/docs/api-cpp/function_a00140_1ab131f65c6191734b6f2e502257b57d0f.html @@ -0,0 +1,197 @@ + + + + + + + + + + Function Splines::Hermite3toPoly — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Function Splines::Hermite3toPoly +

    + +
    +

    Function Documentation +

    +
    +
    +static inline void Splines::Hermite3toPoly(real_type H, real_type P0, real_type P1, real_type DP0, real_type DP1, real_type &A, real_type &B, real_type &C, real_type &D)
    +
    +
    +

    Convert polynomial defined using Hermite base

    +

    +
    +\[ p(x) = p_0 h_0(t) + p_1 h_1(t) + p'_0 h_2(t) + p'_1 h_3(t) \]
    + +

    to standard form

    +

    +
    +\[ p(x) = A t^3 + B t^2 + C t + D \]
    + +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2.html b/docs/api-cpp/function_a00140_1ac18823b95eb83fa935ba4d33eb4e75a2.html similarity index 56% rename from docs/api-cpp/function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2.html rename to docs/api-cpp/function_a00140_1ac18823b95eb83fa935ba4d33eb4e75a2.html index 3800d594..b8fb24ed 100644 --- a/docs/api-cpp/function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2.html +++ b/docs/api-cpp/function_a00140_1ac18823b95eb83fa935ba4d33eb4e75a2.html @@ -7,16 +7,26 @@ - Function Splines::min_abs — Splines documentation + Function Splines::min_abs — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::min_abs +

    Function Splines::min_abs

    Function Documentation

    -static inline real_type Splines::min_abs(real_type a, real_type b)
    +static inline real_type Splines::min_abs(real_type a, real_type b)
    @@ -100,33 +110,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function Splines::max_abs

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_a00140_1ac224d3e03da08343b0bf26eb4170d6a2.html b/docs/api-cpp/function_a00140_1ac224d3e03da08343b0bf26eb4170d6a2.html new file mode 100644 index 00000000..9f2c3103 --- /dev/null +++ b/docs/api-cpp/function_a00140_1ac224d3e03da08343b0bf26eb4170d6a2.html @@ -0,0 +1,197 @@ + + + + + + + + + + Function Splines::Hermite5toPoly — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Function Splines::Hermite5toPoly +

    + +
    +

    Function Documentation +

    +
    +
    +static inline void Splines::Hermite5toPoly(real_type h, real_type P0, real_type P1, real_type DP0, real_type DP1, real_type DDP0, real_type DDP1, real_type &A, real_type &B, real_type &C, real_type &D, real_type &E, real_type &F)
    +
    +
    +

    Convert polynomial defined using Hermite base

    +

    +
    +\[ p(x) = p_0 h_0(t) + p_1 h_1(t) + p'_0 h_2(t) + p'_1 h_3(t) + p''_0 h_4(t) + p''_1 h_5(t) \]
    + +

    to standard form

    +

    +
    +\[ p(x) = A t^5 + B t^4 + C t^3 + D t^2 + E t + F \]
    + +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/function_a00140_1ac5930dd87f51e2577e79a2bdd746c6b2.html b/docs/api-cpp/function_a00140_1ac5930dd87f51e2577e79a2bdd746c6b2.html new file mode 100644 index 00000000..a869b416 --- /dev/null +++ b/docs/api-cpp/function_a00140_1ac5930dd87f51e2577e79a2bdd746c6b2.html @@ -0,0 +1,199 @@ + + + + + + + + + + Function Splines::FoleyNielsen — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Function Splines::FoleyNielsen +

    + +
    +

    Function Documentation +

    +
    +
    +void Splines::FoleyNielsen(integer dim, integer npts, real_type const *pnts, integer ld_pnts, real_type *t)
    +
    +
    +

    Compute nodes for the spline using FoleyNielsen distribution

    +
    +
    Parameters
    +
    +
      +
    • dim[in] dimension of the points

    • +
    • npts[in] number of points

    • +
    • pnts[in] matrix whose columns are the points

    • +
    • ld_pnts[in] leading dimension of the matrix (fortran storage)

    • +
    • t[out] vector of the computed nodes

    • +
    +
    +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e.html b/docs/api-cpp/function_a00140_1ad1cb03ee7c6c9f13f93df88d7612e26e.html similarity index 56% rename from docs/api-cpp/function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e.html rename to docs/api-cpp/function_a00140_1ad1cb03ee7c6c9f13f93df88d7612e26e.html index 414404e3..93c4831e 100644 --- a/docs/api-cpp/function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e.html +++ b/docs/api-cpp/function_a00140_1ad1cb03ee7c6c9f13f93df88d7612e26e.html @@ -7,16 +7,26 @@ - Function Splines::curvature_D — Splines documentation + Function Splines::curvature_D — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::curvature_D +

    Function Splines::curvature_D

    Function Documentation

    -real_type Splines::curvature_D(real_type s, Spline const &X, Spline const &Y)
    +real_type Splines::curvature_D(real_type s, Spline const &X, Spline const &Y)

    compute curvature derivative of a planar curve

    @@ -102,33 +112,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function Splines::curvature

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4.html b/docs/api-cpp/function_a00140_1ae61f54b18ac4089ead89302e4b99fee4.html similarity index 55% rename from docs/api-cpp/function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4.html rename to docs/api-cpp/function_a00140_1ae61f54b18ac4089ead89302e4b99fee4.html index e3d2d896..5c287c7c 100644 --- a/docs/api-cpp/function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4.html +++ b/docs/api-cpp/function_a00140_1ae61f54b18ac4089ead89302e4b99fee4.html @@ -7,16 +7,26 @@ - Function Splines::max_abs — Splines documentation + Function Splines::max_abs — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::max_abs +

    Function Splines::max_abs

    Function Documentation

    -static inline real_type Splines::max_abs(real_type a, real_type b)
    +static inline real_type Splines::max_abs(real_type a, real_type b)
    @@ -100,33 +110,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Function Splines::get_region

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03.html b/docs/api-cpp/function_a00140_1aeb6c86ca718705bd71ad29b32c3f6d03.html similarity index 59% rename from docs/api-cpp/function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03.html rename to docs/api-cpp/function_a00140_1aeb6c86ca718705bd71ad29b32c3f6d03.html index 094d9678..4e1eb754 100644 --- a/docs/api-cpp/function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03.html +++ b/docs/api-cpp/function_a00140_1aeb6c86ca718705bd71ad29b32c3f6d03.html @@ -7,16 +7,26 @@ - Function Splines::backtrace — Splines documentation + Function Splines::backtrace — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Function Splines::backtrace +

    Function Splines::backtrace

    Function Documentation

    -void Splines::backtrace(ostream_type&)
    +void Splines::backtrace(ostream_type&)
    @@ -100,33 +110,7 @@

    Function Documentation -
    -

    Previous page

    -

    ← Enum SplineType2D

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_a00140_1aeea9f9f28b21dbf93715fd27a7c7106c.html b/docs/api-cpp/function_a00140_1aeea9f9f28b21dbf93715fd27a7c7106c.html new file mode 100644 index 00000000..1e8a87fa --- /dev/null +++ b/docs/api-cpp/function_a00140_1aeea9f9f28b21dbf93715fd27a7c7106c.html @@ -0,0 +1,199 @@ + + + + + + + + + + Function Splines::FangHung — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Function Splines::FangHung +

    + +
    +

    Function Documentation +

    +
    +
    +void Splines::FangHung(integer dim, integer npts, real_type const *pnts, integer ld_pnts, real_type *t)
    +
    +
    +

    Compute nodes for the spline using FangHung distribution

    +
    +
    Parameters
    +
    +
      +
    • dim[in] dimension of the points

    • +
    • npts[in] number of points

    • +
    • pnts[in] matrix whose columns are the points

    • +
    • ld_pnts[in] leading dimension of the matrix (fortran storage)

    • +
    • t[out] vector of the computed nodes

    • +
    +
    +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/function_a00140_1aef9996b8a86809bcb1609ed9bab5cea2.html b/docs/api-cpp/function_a00140_1aef9996b8a86809bcb1609ed9bab5cea2.html new file mode 100644 index 00000000..abd1be03 --- /dev/null +++ b/docs/api-cpp/function_a00140_1aef9996b8a86809bcb1609ed9bab5cea2.html @@ -0,0 +1,199 @@ + + + + + + + + + + Function Splines::chordal — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Function Splines::chordal +

    + +
    +

    Function Documentation +

    +
    +
    +void Splines::chordal(integer dim, integer npts, real_type const *pnts, integer ld_pnts, real_type *t)
    +
    +
    +

    Compute nodes for the spline using chordal distribution

    +
    +
    Parameters
    +
    +
      +
    • dim[in] dimension of the points

    • +
    • npts[in] number of points

    • +
    • pnts[in] matrix whose columns are the points

    • +
    • ld_pnts[in] leading dimension of the matrix (fortran storage)

    • +
    • t[out] vector of the computed nodes

    • +
    +
    +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d.html b/docs/api-cpp/function_a00140_1afb1c7d06a034be8c501f91321a50af3d.html similarity index 53% rename from docs/api-cpp/function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d.html rename to docs/api-cpp/function_a00140_1afb1c7d06a034be8c501f91321a50af3d.html index 2b0e32b2..9ea0302d 100644 --- a/docs/api-cpp/function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d.html +++ b/docs/api-cpp/function_a00140_1afb1c7d06a034be8c501f91321a50af3d.html @@ -7,16 +7,26 @@ - Function Splines::Pchip_build — Splines documentation + Function Splines::Pchip_build — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,23 +82,23 @@

    Navigation

    -

    Function Splines::Pchip_build +

    Function Splines::Pchip_build

    Function Documentation

    -void Splines::Pchip_build(real_type const *X, real_type const *Y, real_type *Yp, integer npts)
    +void Splines::Pchip_build(real_type const *X, real_type const *Y, real_type *Yp, integer npts)
    -
    -

    Reference: +
    +

    References:

    -

    F.N. Fritsch, R.E. Carlson: Monotone Piecewise Cubic Interpolation, SIAM J. Numer. Anal. Vol 17, No. 2, April 1980

    +

    F.N. Fritsch, R.E. Carlson: Monotone Piecewise Cubic Interpolation, SIAM J. Numer. Anal. Vol 17, No. 2, April 1980

    F.N. Fritsch and J. Butland: A method for constructing local monotone piecewise cubic interpolants, SIAM Journal on Scientific and Statistical Computing 5, 2 (June 1984), pp. 300-304.

    @@ -107,33 +117,7 @@

    Reference: - - -
    -

    This Page

    - -
    +

    +

    @@ -177,14 +170,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -192,7 +185,7 @@

    Navigation

    diff --git a/docs/api-cpp/function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9.html b/docs/api-cpp/function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9.html deleted file mode 100644 index 6f0e8837..00000000 --- a/docs/api-cpp/function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - - Function Splines::centripetal — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Function Splines::centripetal -

    - -
    -

    Function Documentation -

    -
    -
    -void Splines::centripetal(integer dim, integer npts, real_type const *pnts, integer ld_pnts, real_type alpha, real_type *t)
    -
    -
    -

    Compute nodes for the spline using centripetal distribution

    -

    -
    -
    Parameters
    -
    -
      -
    • [in] dim: dimension of the points

    • -
    • [in] npts: number of points

    • -
    • [in] pnts: matrix whose columns are the points

    • -
    • [in] ld_pnts: leading dimension of the matrix (fortran storage)

    • -
    • [in] alpha: power factor

    • -
    • [out] t: vector of the computed nodes

    • -
    -
    -
    - -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f.html b/docs/api-cpp/function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f.html deleted file mode 100644 index 24157226..00000000 --- a/docs/api-cpp/function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - Function Splines::universal — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Function Splines::universal -

    - -
    -

    Function Documentation -

    -
    -
    -void Splines::universal(integer dim, integer npts, real_type const *pnts, integer ld_pnts, real_type *t)
    -
    -
    -

    Compute nodes for the spline using universal distribution

    -

    -
    -
    Parameters
    -
    -
      -
    • [in] dim: dimension of the points

    • -
    • [in] npts: number of points

    • -
    • [in] pnts: matrix whose columns are the points

    • -
    • [in] ld_pnts: leading dimension of the matrix (fortran storage)

    • -
    • [out] t: vector of the computed nodes

    • -
    -
    -
    - -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2.html b/docs/api-cpp/function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2.html deleted file mode 100644 index e23ccbff..00000000 --- a/docs/api-cpp/function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - Function Splines::FoleyNielsen — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Function Splines::FoleyNielsen -

    - -
    -

    Function Documentation -

    -
    -
    -void Splines::FoleyNielsen(integer dim, integer npts, real_type const *pnts, integer ld_pnts, real_type *t)
    -
    -
    -

    Compute nodes for the spline using FoleyNielsen distribution

    -

    -
    -
    Parameters
    -
    -
      -
    • [in] dim: dimension of the points

    • -
    • [in] npts: number of points

    • -
    • [in] pnts: matrix whose columns are the points

    • -
    • [in] ld_pnts: leading dimension of the matrix (fortran storage)

    • -
    • [out] t: vector of the computed nodes

    • -
    -
    -
    - -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c.html b/docs/api-cpp/function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c.html deleted file mode 100644 index a1e42121..00000000 --- a/docs/api-cpp/function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - Function Splines::FangHung — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Function Splines::FangHung -

    - -
    -

    Function Documentation -

    -
    -
    -void Splines::FangHung(integer dim, integer npts, real_type const *pnts, integer ld_pnts, real_type *t)
    -
    -
    -

    Compute nodes for the spline using FangHung distribution

    -

    -
    -
    Parameters
    -
    -
      -
    • [in] dim: dimension of the points

    • -
    • [in] npts: number of points

    • -
    • [in] pnts: matrix whose columns are the points

    • -
    • [in] ld_pnts: leading dimension of the matrix (fortran storage)

    • -
    • [out] t: vector of the computed nodes

    • -
    -
    -
    - -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2.html b/docs/api-cpp/function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2.html deleted file mode 100644 index 30b4d1ed..00000000 --- a/docs/api-cpp/function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - Function Splines::chordal — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Function Splines::chordal -

    - -
    -

    Function Documentation -

    -
    -
    -void Splines::chordal(integer dim, integer npts, real_type const *pnts, integer ld_pnts, real_type *t)
    -
    -
    -

    Compute nodes for the spline using chordal distribution

    -

    -
    -
    Parameters
    -
    -
      -
    • [in] dim: dimension of the points

    • -
    • [in] npts: number of points

    • -
    • [in] pnts: matrix whose columns are the points

    • -
    • [in] ld_pnts: leading dimension of the matrix (fortran storage)

    • -
    • [out] t: vector of the computed nodes

    • -
    -
    -
    - -
    -
    - -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/library_root.html b/docs/api-cpp/library_root.html deleted file mode 100644 index 8adcb890..00000000 --- a/docs/api-cpp/library_root.html +++ /dev/null @@ -1,903 +0,0 @@ - - - - - - - - - - C++ API — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    C++ API -

    -
    -

    Class Hierarchy -

    -
    - -
    -
    -

    File Hierarchy -

    -
    - -
    -
    -

    Full API -

    -
    -

    Namespaces -

    - -
    -
    -

    Classes and Structs -

    - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - -
    -

    Typedefs -

    - - - - -
    -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/namespace_Splines.html b/docs/api-cpp/namespace_Splines.html index 1cbc7d7c..e8036f96 100644 --- a/docs/api-cpp/namespace_Splines.html +++ b/docs/api-cpp/namespace_Splines.html @@ -7,16 +7,26 @@ - Namespace Splines — Splines documentation + Namespace Splines — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -88,80 +98,83 @@

    Navigation

    Classes

    @@ -176,37 +189,7 @@

    Variables -
    -

    Previous page

    -

    ← C++ API

    -
    -
    -

    Next page

    -

    → Class Akima2Dspline

    -
    -
    -

    This Page

    - -
    +

    + @@ -250,14 +242,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - + @@ -265,7 +257,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.html b/docs/api-cpp/program_listing_file_SplineAkima.cc.html similarity index 92% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.html rename to docs/api-cpp/program_listing_file_SplineAkima.cc.html index c5ac464e..40f82abb 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.html +++ b/docs/api-cpp/program_listing_file_SplineAkima.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineAkima.cc — Splines documentation + Program Listing for File SplineAkima.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineAkima.cc +

    Program Listing for File SplineAkima.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima.cc)

    +

    Return to documentation for file (SplineAkima.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -199,8 +209,8 @@ 

    Navigation

    } #ifndef DOXYGEN_SHOULD_SKIP_THIS - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; #endif // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -247,13 +257,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -296,7 +308,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -305,7 +317,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.html b/docs/api-cpp/program_listing_file_SplineAkima.hxx.html similarity index 83% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.html rename to docs/api-cpp/program_listing_file_SplineAkima.hxx.html index 077feb1c..ce1ef012 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineAkima.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineAkima.hxx — Splines documentation + Program Listing for File SplineAkima.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineAkima.hxx +

    Program Listing for File SplineAkima.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima.hxx)

    +

    Return to documentation for file (SplineAkima.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -150,13 +160,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -199,7 +211,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -208,7 +220,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.html b/docs/api-cpp/program_listing_file_SplineAkima2D.cc.html similarity index 97% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.html rename to docs/api-cpp/program_listing_file_SplineAkima2D.cc.html index bbcf4c93..b7dda60e 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.html +++ b/docs/api-cpp/program_listing_file_SplineAkima2D.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineAkima2D.cc — Splines documentation + Program Listing for File SplineAkima2D.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineAkima2D.cc +

    Program Listing for File SplineAkima2D.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima2D.cc)

    +

    Return to documentation for file (SplineAkima2D.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -454,10 +464,10 @@ 

    Navigation

    fmt::print( s, "Nx = {} Ny = {}\n", m_nx, m_ny ); for ( integer i = 1; i < m_nx; ++i ) { for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t( ipos_C(i-1,j-1,m_ny) ); - size_t i10 = size_t( ipos_C(i,j-1,m_ny) ); - size_t i01 = size_t( ipos_C(i-1,j,m_ny) ); - size_t i11 = size_t( ipos_C(i,j,m_ny) ); + size_t i00 = size_t( ipos_C(i-1,j-1) ); + size_t i10 = size_t( ipos_C(i,j-1) ); + size_t i01 = size_t( ipos_C(i-1,j) ); + size_t i11 = size_t( ipos_C(i,j) ); fmt::print( s, "patch ({},{)\n" " DX = {:<12.4} DY = {:<12.4}\n" @@ -497,13 +507,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -546,7 +558,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -555,7 +567,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.html b/docs/api-cpp/program_listing_file_SplineAkima2D.hxx.html similarity index 81% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.html rename to docs/api-cpp/program_listing_file_SplineAkima2D.hxx.html index e93a5969..72a2e4a0 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineAkima2D.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineAkima2D.hxx — Splines documentation + Program Listing for File SplineAkima2D.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineAkima2D.hxx +

    Program Listing for File SplineAkima2D.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineAkima2D.hxx)

    +

    Return to documentation for file (SplineAkima2D.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -130,13 +140,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -179,7 +191,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -188,7 +200,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.html b/docs/api-cpp/program_listing_file_SplineBessel.cc.html similarity index 90% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.html rename to docs/api-cpp/program_listing_file_SplineBessel.cc.html index a795b82d..e5684e5c 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.html +++ b/docs/api-cpp/program_listing_file_SplineBessel.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineBessel.cc — Splines documentation + Program Listing for File SplineBessel.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineBessel.cc +

    Program Listing for File SplineBessel.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBessel.cc)

    +

    Return to documentation for file (SplineBessel.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -174,8 +184,8 @@ 

    Navigation

    Utils::checkNaN( m_Yp, (msg+" Yp").c_str(), m_npts, __LINE__, __FILE__ ); } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -221,13 +231,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -270,7 +282,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -279,7 +291,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.html b/docs/api-cpp/program_listing_file_SplineBessel.hxx.html similarity index 83% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.html rename to docs/api-cpp/program_listing_file_SplineBessel.hxx.html index ec008a34..51fe6daf 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineBessel.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineBessel.hxx — Splines documentation + Program Listing for File SplineBessel.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineBessel.hxx +

    Program Listing for File SplineBessel.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBessel.hxx)

    +

    Return to documentation for file (SplineBessel.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -147,13 +157,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -196,7 +208,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -205,7 +217,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.html b/docs/api-cpp/program_listing_file_SplineBiCubic.cc.html similarity index 90% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.html rename to docs/api-cpp/program_listing_file_SplineBiCubic.cc.html index 685e2fbc..661a6a64 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.html +++ b/docs/api-cpp/program_listing_file_SplineBiCubic.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineBiCubic.cc — Splines documentation + Program Listing for File SplineBiCubic.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineBiCubic.cc +

    Program Listing for File SplineBiCubic.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiCubic.cc)

    +

    Return to documentation for file (SplineBiCubic.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -135,10 +145,10 @@ 

    Navigation

    fmt::print( "Nx = {} Ny = {}\n", m_nx, m_ny ); for ( integer i = 1; i < m_nx; ++i ) { for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t(this->ipos_C(i-1,j-1,m_ny)); - size_t i10 = size_t(this->ipos_C(i,j-1,m_ny)); - size_t i01 = size_t(this->ipos_C(i-1,j,m_ny)); - size_t i11 = size_t(this->ipos_C(i,j,m_ny)); + size_t i00 = size_t(this->ipos_C(i-1,j-1)); + size_t i10 = size_t(this->ipos_C(i,j-1)); + size_t i01 = size_t(this->ipos_C(i-1,j)); + size_t i11 = size_t(this->ipos_C(i,j)); fmt::print( s, "patch ({},{})\n" "DX = {:<12.4} DY = {:<12.4}\n" @@ -178,13 +188,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -227,7 +239,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -236,7 +248,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.html b/docs/api-cpp/program_listing_file_SplineBiCubic.hxx.html similarity index 90% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.html rename to docs/api-cpp/program_listing_file_SplineBiCubic.hxx.html index dabcfbb9..ee63ef38 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineBiCubic.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineBiCubic.hxx — Splines documentation + Program Listing for File SplineBiCubic.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineBiCubic.hxx +

    Program Listing for File SplineBiCubic.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiCubic.hxx)

    +

    Return to documentation for file (SplineBiCubic.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -198,13 +208,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -247,7 +259,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -256,7 +268,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.html b/docs/api-cpp/program_listing_file_SplineBiQuintic.cc.html similarity index 93% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.html rename to docs/api-cpp/program_listing_file_SplineBiQuintic.cc.html index a766bf19..a2b27e67 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.html +++ b/docs/api-cpp/program_listing_file_SplineBiQuintic.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineBiQuintic.cc — Splines documentation + Program Listing for File SplineBiQuintic.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineBiQuintic.cc +

    Program Listing for File SplineBiQuintic.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiQuintic.cc)

    +

    Return to documentation for file (SplineBiQuintic.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -175,10 +185,10 @@ 

    Navigation

    fmt::print( s, "Nx = {} Ny = {}\n", m_nx, m_ny ); for ( integer i = 1; i < m_nx; ++i ) { for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t(this->ipos_C(i-1,j-1,m_ny)); - size_t i10 = size_t(this->ipos_C(i,j-1,m_ny)); - size_t i01 = size_t(this->ipos_C(i-1,j,m_ny)); - size_t i11 = size_t(this->ipos_C(i,j,m_ny)); + size_t i00 = size_t(this->ipos_C(i-1,j-1)); + size_t i10 = size_t(this->ipos_C(i,j-1)); + size_t i01 = size_t(this->ipos_C(i-1,j)); + size_t i11 = size_t(this->ipos_C(i,j)); fmt::print( s, "patch({},{})\n" " DX = {:<12.4} DY = {:<12.4}\n" @@ -218,13 +228,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -267,7 +279,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -276,7 +288,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.html b/docs/api-cpp/program_listing_file_SplineBiQuintic.hxx.html similarity index 90% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.html rename to docs/api-cpp/program_listing_file_SplineBiQuintic.hxx.html index ab7fd046..d8ee0e26 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineBiQuintic.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineBiQuintic.hxx — Splines documentation + Program Listing for File SplineBiQuintic.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineBiQuintic.hxx +

    Program Listing for File SplineBiQuintic.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBiQuintic.hxx)

    +

    Return to documentation for file (SplineBiQuintic.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -202,13 +212,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -251,7 +263,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -260,7 +272,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.html b/docs/api-cpp/program_listing_file_SplineBilinear.cc.html similarity index 94% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.html rename to docs/api-cpp/program_listing_file_SplineBilinear.cc.html index ae1b4618..0425dd4e 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.html +++ b/docs/api-cpp/program_listing_file_SplineBilinear.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineBilinear.cc — Splines documentation + Program Listing for File SplineBilinear.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineBilinear.cc +

    Program Listing for File SplineBilinear.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBilinear.cc)

    +

    Return to documentation for file (SplineBilinear.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -191,10 +201,10 @@ 

    Navigation

    fmt::print( s, "Nx = {} Ny = {}\n", m_nx, m_ny ); for ( integer i = 1; i < m_nx; ++i ) { for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t(this->ipos_C(i-1,j-1,m_ny)); - size_t i10 = size_t(this->ipos_C(i,j-1,m_ny)); - size_t i01 = size_t(this->ipos_C(i-1,j,m_ny)); - size_t i11 = size_t(this->ipos_C(i,j,m_ny)); + size_t i00 = size_t(this->ipos_C(i-1,j-1)); + size_t i10 = size_t(this->ipos_C(i,j-1)); + size_t i01 = size_t(this->ipos_C(i-1,j)); + size_t i11 = size_t(this->ipos_C(i,j)); fmt::print( s, "patch ({},{})\n" " DX = {:<12.4} DY = {:<12.4}\n" @@ -230,13 +240,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -279,7 +291,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -288,7 +300,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.html b/docs/api-cpp/program_listing_file_SplineBilinear.hxx.html similarity index 86% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.html rename to docs/api-cpp/program_listing_file_SplineBilinear.hxx.html index d27680ca..ad28ebb8 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineBilinear.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineBilinear.hxx — Splines documentation + Program Listing for File SplineBilinear.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineBilinear.hxx +

    Program Listing for File SplineBilinear.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineBilinear.hxx)

    +

    Return to documentation for file (SplineBilinear.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -150,13 +160,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -199,7 +211,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -208,7 +220,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.html b/docs/api-cpp/program_listing_file_SplineConstant.cc.html similarity index 79% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.html rename to docs/api-cpp/program_listing_file_SplineConstant.cc.html index 77a0c47e..270b7bae 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.html +++ b/docs/api-cpp/program_listing_file_SplineConstant.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineConstant.cc — Splines documentation + Program Listing for File SplineConstant.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineConstant.cc +

    Program Listing for File SplineConstant.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineConstant.cc)

    +

    Return to documentation for file (SplineConstant.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -208,8 +218,8 @@ 

    Navigation

    ConstantSpline::order() const { return 1; } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -239,6 +249,37 @@

    Navigation

    this->build( x, y ); } + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + void + ConstantSpline::y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const { + UTILS_ASSERT0( + m_npts > 0, "ConstantSpline::y_min_max() empty spline!" + ); + // find max min alongh the nodes + i_min_pos = i_max_pos = 0; + x_min_pos = x_max_pos = m_X[0]; + y_min = y_max = m_Y[0]; + for ( integer i = 1; i < m_npts-1; ++i ) { + real_type const & P1 = m_Y[i]; + if ( P1 > y_max ) { + y_max = P1; + x_max_pos = m_X[i]; + i_max_pos = i; + } else if ( P1 < y_min ) { + y_min = P1; + x_min_pos = m_X[i]; + i_min_pos = i; + } + } + } }
    @@ -255,13 +296,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -304,7 +347,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -313,7 +356,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.html b/docs/api-cpp/program_listing_file_SplineConstant.hxx.html similarity index 82% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.html rename to docs/api-cpp/program_listing_file_SplineConstant.hxx.html index e2569905..6f911d1d 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineConstant.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineConstant.hxx — Splines documentation + Program Listing for File SplineConstant.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineConstant.hxx +

    Program Listing for File SplineConstant.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineConstant.hxx)

    +

    Return to documentation for file (SplineConstant.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -147,11 +157,9 @@ 

    Navigation

    // --------------------------- VIRTUALS ----------------------------------- - void - reserve( integer npts ) override; + void reserve( integer npts ) override; - void - clear() override; + void clear() override; integer // order coeffs( @@ -163,6 +171,16 @@

    Navigation

    integer order() const override; void setup( GenericContainer const & gc ) override; + void + y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const override; + }; } @@ -182,13 +200,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -231,7 +251,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -240,7 +260,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.html b/docs/api-cpp/program_listing_file_SplineCubic.cc.html similarity index 98% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.html rename to docs/api-cpp/program_listing_file_SplineCubic.cc.html index 8947713b..bb1192bd 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.html +++ b/docs/api-cpp/program_listing_file_SplineCubic.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineCubic.cc — Splines documentation + Program Listing for File SplineCubic.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineCubic.cc +

    Program Listing for File SplineCubic.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubic.cc)

    +

    Return to documentation for file (SplineCubic.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -555,8 +565,8 @@ 

    Navigation

    } #ifndef DOXYGEN_SHOULD_SKIP_THIS - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; #endif // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -632,13 +642,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -681,7 +693,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -690,7 +702,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.html b/docs/api-cpp/program_listing_file_SplineCubic.hxx.html similarity index 84% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.html rename to docs/api-cpp/program_listing_file_SplineCubic.hxx.html index 461fdc36..7ea1e0fe 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineCubic.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineCubic.hxx — Splines documentation + Program Listing for File SplineCubic.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineCubic.hxx +

    Program Listing for File SplineCubic.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubic.hxx)

    +

    Return to documentation for file (SplineCubic.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -137,6 +147,7 @@ 

    Navigation

    CUBIC_SPLINE_TYPE_BC m_bc0, m_bcn; public: + #ifndef DOXYGEN_SHOULD_SKIP_THIS using CubicSplineBase::build; using CubicSplineBase::reserve; @@ -150,6 +161,8 @@

    Navigation

    ~CubicSpline() override {} + + void setInitialBC( CUBIC_SPLINE_TYPE_BC bc0 ) { m_bc0 = bc0; } @@ -158,13 +171,13 @@

    Navigation

    setFinalBC( CUBIC_SPLINE_TYPE_BC bcn ) { m_bcn = bcn; } - unsigned type() const override { return CUBIC_TYPE; } - // --------------------------- VIRTUALS ----------------------------------- void build() override; void setup( GenericContainer const & gc ) override; + + unsigned type() const override { return CUBIC_TYPE; } }; } @@ -185,13 +198,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -234,7 +249,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -243,7 +258,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.html b/docs/api-cpp/program_listing_file_SplineCubicBase.cc.html similarity index 80% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.html rename to docs/api-cpp/program_listing_file_SplineCubicBase.cc.html index 2803722d..9a4279ef 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.html +++ b/docs/api-cpp/program_listing_file_SplineCubicBase.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineCubicBase.cc — Splines documentation + Program Listing for File SplineCubicBase.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineCubicBase.cc +

    Program Listing for File SplineCubicBase.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineCubicBase.cc)

    +

    Return to documentation for file (SplineCubicBase.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -87,6 +97,7 @@ 

    Navigation

    \*--------------------------------------------------------------------------*/ #include "Splines.hh" +#include "PolynomialRoots.hh" #include <iomanip> #ifdef __clang__ @@ -98,7 +109,6 @@

    Navigation

    #ifndef DOXYGEN_SHOULD_SKIP_THIS using namespace std; // load standard namspace -#endif namespace Splines { @@ -142,7 +152,7 @@

    Navigation

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSplineBase::clear(void) { + CubicSplineBase::clear() { if ( !m_external_alloc ) m_baseValue.free(); m_npts = m_npts_reserved = 0; m_external_alloc = false; @@ -350,7 +360,51 @@

    Navigation

    ); } + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + void + CubicSplineBase::y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const { + UTILS_ASSERT0( + m_npts > 0, "CubicSplineBase::y_min_max() empty spline!" + ); + // find max min alongh the nodes + i_min_pos = i_max_pos = 0; + x_min_pos = x_max_pos = m_X[0]; + y_min = y_max = m_Y[0]; + PolynomialRoots::Quadratic q; + for ( integer i = 1; i < m_npts; ++i ) { + real_type const & X0 = m_X[i-1]; + real_type const & X1 = m_X[i]; + real_type const & P0 = m_Y[i-1]; + real_type const & P1 = m_Y[i]; + real_type const & DP0 = m_Yp[i-1]; + real_type const & DP1 = m_Yp[i]; + real_type H = X1 - X0; + real_type A, B, C, D; + Hermite3toPoly( H, P0, P1, DP0, DP1, A, B, C, D ); + q.setup( 3*A, 2*B, C ); + real_type r[2]; + integer nr = q.getRootsInOpenRange( 0, H, r ); + for ( integer j = 0; j < nr; ++j ) { + real_type rr = r[j]; + real_type yy = (((A*rr)+B)*rr+C)*rr+D; + if ( yy > y_max ) { y_max = yy; x_max_pos = X0+rr; i_max_pos = i; } + else if ( yy < y_min ) { y_min = yy; x_min_pos = X0+rr; i_min_pos = i; } + } + if ( P1 > y_max ) { y_max = P1; x_max_pos = X1; i_max_pos = i; } + else if ( P1 < y_min ) { y_min = P1; x_min_pos = X1; i_min_pos = i; } + } + } } + +#endif
    @@ -366,13 +420,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -415,7 +471,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -424,7 +480,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.html b/docs/api-cpp/program_listing_file_SplineHermite.cc.html similarity index 96% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.html rename to docs/api-cpp/program_listing_file_SplineHermite.cc.html index e204e806..b9507e37 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.html +++ b/docs/api-cpp/program_listing_file_SplineHermite.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineHermite.cc — Splines documentation + Program Listing for File SplineHermite.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineHermite.cc +

    Program Listing for File SplineHermite.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineHermite.cc)

    +

    Return to documentation for file (SplineHermite.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -335,8 +345,8 @@ 

    Navigation

    ); } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; void HermiteSpline::setup( GenericContainer const & gc ) { @@ -386,13 +396,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -435,7 +447,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -444,7 +456,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.html b/docs/api-cpp/program_listing_file_SplineHermite.hxx.html similarity index 83% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.html rename to docs/api-cpp/program_listing_file_SplineHermite.hxx.html index 96d705c1..7264596b 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineHermite.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineHermite.hxx — Splines documentation + Program Listing for File SplineHermite.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineHermite.hxx +

    Program Listing for File SplineHermite.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineHermite.hxx)

    +

    Return to documentation for file (SplineHermite.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -147,13 +157,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -196,7 +208,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -205,7 +217,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.html b/docs/api-cpp/program_listing_file_SplineLinear.cc.html similarity index 82% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.html rename to docs/api-cpp/program_listing_file_SplineLinear.cc.html index ed89d967..16afadad 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.html +++ b/docs/api-cpp/program_listing_file_SplineLinear.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineLinear.cc — Splines documentation + Program Listing for File SplineLinear.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineLinear.cc +

    Program Listing for File SplineLinear.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineLinear.cc)

    +

    Return to documentation for file (SplineLinear.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -171,7 +181,7 @@ 

    Navigation

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - LinearSpline::clear(void) { + LinearSpline::clear() { if ( !m_external_alloc ) m_baseValue.free(); m_npts = m_npts_reserved = 0; m_external_alloc = false; @@ -220,8 +230,8 @@

    Navigation

    integer LinearSpline::order( ) const { return 2; } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -251,6 +261,37 @@

    Navigation

    this->build( x, y ); } + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + void + LinearSpline::y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const { + UTILS_ASSERT0( + m_npts > 0, "LinearSpline::y_min_max() empty spline!" + ); + // find max min alongh the nodes + i_min_pos = i_max_pos = 0; + x_min_pos = x_max_pos = m_X[0]; + y_min = y_max = m_Y[0]; + for ( integer i = 1; i < m_npts; ++i ) { + real_type const & P1 = m_Y[i]; + if ( P1 > y_max ) { + y_max = P1; + x_max_pos = m_X[i]; + i_max_pos = i; + } else if ( P1 < y_min ) { + y_min = P1; + x_min_pos = m_X[i]; + i_min_pos = i; + } + } + } }
    @@ -267,13 +308,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -316,7 +359,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -325,7 +368,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.html b/docs/api-cpp/program_listing_file_SplineLinear.hxx.html similarity index 83% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.html rename to docs/api-cpp/program_listing_file_SplineLinear.hxx.html index 3671d2e5..890e6902 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineLinear.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineLinear.hxx — Splines documentation + Program Listing for File SplineLinear.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineLinear.hxx +

    Program Listing for File SplineLinear.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineLinear.hxx)

    +

    Return to documentation for file (SplineLinear.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -142,9 +152,7 @@ 

    Navigation

    // --------------------------- VIRTUALS ----------------------------------- void reserve( integer npts ) override; - void build() override {} - void clear() override; integer // order @@ -157,6 +165,16 @@

    Navigation

    integer order() const override; void setup( GenericContainer const & gc ) override; + void + y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const override; + }; } @@ -177,13 +195,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -226,7 +246,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -235,7 +255,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.html b/docs/api-cpp/program_listing_file_SplinePchip.cc.html similarity index 95% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.html rename to docs/api-cpp/program_listing_file_SplinePchip.cc.html index 140c1174..6d724a60 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.html +++ b/docs/api-cpp/program_listing_file_SplinePchip.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplinePchip.cc — Splines documentation + Program Listing for File SplinePchip.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplinePchip.cc +

    Program Listing for File SplinePchip.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinePchip.cc)

    +

    Return to documentation for file (SplinePchip.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -331,8 +341,8 @@ 

    Navigation

    Utils::checkNaN( m_Yp, (msg+" Yp").c_str(), m_npts, __LINE__, __FILE__ ); } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -378,13 +388,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -427,7 +439,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -436,7 +448,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.html b/docs/api-cpp/program_listing_file_SplinePchip.hxx.html similarity index 83% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.html rename to docs/api-cpp/program_listing_file_SplinePchip.hxx.html index 8eadc9cc..6db8fe06 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.html +++ b/docs/api-cpp/program_listing_file_SplinePchip.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplinePchip.hxx — Splines documentation + Program Listing for File SplinePchip.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplinePchip.hxx +

    Program Listing for File SplinePchip.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinePchip.hxx)

    +

    Return to documentation for file (SplinePchip.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -145,13 +155,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -194,7 +206,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -203,7 +215,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.html b/docs/api-cpp/program_listing_file_SplineQuintic.cc.html similarity index 96% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.html rename to docs/api-cpp/program_listing_file_SplineQuintic.cc.html index 3cd854c4..6663f8ee 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.html +++ b/docs/api-cpp/program_listing_file_SplineQuintic.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineQuintic.cc — Splines documentation + Program Listing for File SplineQuintic.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineQuintic.cc +

    Program Listing for File SplineQuintic.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuintic.cc)

    +

    Return to documentation for file (SplineQuintic.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -344,8 +354,8 @@ 

    Navigation

    Utils::checkNaN( m_Ypp, (msg+" Ypp").c_str(), m_npts, __LINE__, __FILE__ ); } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -405,13 +415,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -454,7 +466,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -463,7 +475,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.html b/docs/api-cpp/program_listing_file_SplineQuintic.hxx.html similarity index 83% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.html rename to docs/api-cpp/program_listing_file_SplineQuintic.hxx.html index 61a70542..a6bd1ca0 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineQuintic.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineQuintic.hxx — Splines documentation + Program Listing for File SplineQuintic.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineQuintic.hxx +

    Program Listing for File SplineQuintic.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuintic.hxx)

    +

    Return to documentation for file (SplineQuintic.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -109,6 +119,7 @@ 

    Navigation

    QUINTIC_SPLINE_TYPE m_q_sub_type; public: + #ifndef DOXYGEN_SHOULD_SKIP_THIS using QuinticSplineBase::build; using QuinticSplineBase::reserve; @@ -121,6 +132,7 @@

    Navigation

    ~QuinticSpline() override {} + void setQuinticType( QUINTIC_SPLINE_TYPE qt ) { m_q_sub_type = qt; } @@ -128,7 +140,6 @@

    Navigation

    // --------------------------- VIRTUALS ----------------------------------- void build() override; void setup( GenericContainer const & gc ) override; - }; } @@ -149,13 +160,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -198,7 +211,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -207,7 +220,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.html b/docs/api-cpp/program_listing_file_SplineQuinticBase.cc.html similarity index 82% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.html rename to docs/api-cpp/program_listing_file_SplineQuinticBase.cc.html index ac06047e..ba3f22d8 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.html +++ b/docs/api-cpp/program_listing_file_SplineQuinticBase.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineQuinticBase.cc — Splines documentation + Program Listing for File SplineQuinticBase.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineQuinticBase.cc +

    Program Listing for File SplineQuinticBase.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuinticBase.cc)

    +

    Return to documentation for file (SplineQuinticBase.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -87,6 +97,7 @@ 

    Navigation

    \*--------------------------------------------------------------------------*/ #include "Splines.hh" +#include "PolynomialRoots.hh" #include <iomanip> #ifdef __clang__ @@ -144,7 +155,7 @@

    Navigation

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - QuinticSplineBase::clear(void) { + QuinticSplineBase::clear() { if ( !m_external_alloc ) m_baseValue.free(); m_npts = m_npts_reserved = 0; m_external_alloc = false; @@ -368,6 +379,50 @@

    Navigation

    ); } + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + void + QuinticSplineBase::y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const { + UTILS_ASSERT0( + m_npts > 0, "QuinticSplineBase::y_min_max() empty spline!" + ); + // find max min alongh the nodes + i_min_pos = i_max_pos = 0; + x_min_pos = x_max_pos = m_X[0]; + y_min = y_max = m_Y[0]; + PolynomialRoots::Quartic q; + for ( integer i = 1; i < m_npts; ++i ) { + real_type const & X0 = m_X[i-1]; + real_type const & X1 = m_X[i]; + real_type const & P0 = m_Y[i-1]; + real_type const & P1 = m_Y[i]; + real_type const & DP0 = m_Yp[i-1]; + real_type const & DP1 = m_Yp[i]; + real_type const & DDP0 = m_Ypp[i-1]; + real_type const & DDP1 = m_Ypp[i]; + real_type H = X1 - X0; + real_type A, B, C, D, E, F; + Hermite5toPoly( H, P0, P1, DP0, DP1, DDP0, DDP1, A, B, C, D, E, F ); + q.setup( 5*A, 4*B, 3*C, 2*D, E ); + real_type r[4]; + integer nr = q.getRootsInOpenRange( 0, H, r ); + for ( integer j = 0; j < nr; ++j ) { + real_type rr = r[j]; + real_type yy = (((((A*rr)+B)*rr+C)*rr+D)*rr+E)*rr+F; + if ( yy > y_max ) { y_max = yy; x_max_pos = X0+rr; i_max_pos = i; } + else if ( yy < y_min ) { y_min = yy; x_min_pos = X0+rr; i_min_pos = i; } + } + if ( P1 > y_max ) { y_max = P1; x_max_pos = X1; i_max_pos = i; } + else if ( P1 < y_min ) { y_min = P1; x_min_pos = X1; i_min_pos = i; } + } + } }
    @@ -384,13 +439,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -433,7 +490,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -442,7 +499,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.html b/docs/api-cpp/program_listing_file_SplineQuinticBase.hxx.html similarity index 85% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.html rename to docs/api-cpp/program_listing_file_SplineQuinticBase.hxx.html index 8b2c0e60..20669458 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineQuinticBase.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineQuinticBase.hxx — Splines documentation + Program Listing for File SplineQuinticBase.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineQuinticBase.hxx +

    Program Listing for File SplineQuinticBase.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineQuinticBase.hxx)

    +

    Return to documentation for file (SplineQuinticBase.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -108,6 +118,7 @@ 

    Navigation

    public: + #ifndef DOXYGEN_SHOULD_SKIP_THIS using Spline::build; #endif @@ -122,6 +133,7 @@

    Navigation

    ~QuinticSplineBase() override {} + void copySpline( QuinticSplineBase const & S ); @@ -145,6 +157,16 @@

    Navigation

    real_type * & p_Ypp ); + void + y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const override; + // --------------------------- VIRTUALS ----------------------------------- real_type operator () ( real_type x ) const override; @@ -195,13 +217,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -244,7 +268,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -253,7 +277,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.html b/docs/api-cpp/program_listing_file_SplineSet.cc.html similarity index 98% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.html rename to docs/api-cpp/program_listing_file_SplineSet.cc.html index 6aa29306..5772e7ba 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.html +++ b/docs/api-cpp/program_listing_file_SplineSet.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineSet.cc — Splines documentation + Program Listing for File SplineSet.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineSet.cc +

    Program Listing for File SplineSet.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSet.cc)

    +

    Return to documentation for file (SplineSet.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -883,13 +893,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -932,7 +944,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -941,7 +953,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.html b/docs/api-cpp/program_listing_file_SplineSet.hxx.html similarity index 97% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.html rename to docs/api-cpp/program_listing_file_SplineSet.hxx.html index 22b097fd..c686410f 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineSet.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineSet.hxx — Splines documentation + Program Listing for File SplineSet.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineSet.hxx +

    Program Listing for File SplineSet.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSet.hxx)

    +

    Return to documentation for file (SplineSet.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -153,6 +163,7 @@ 

    Navigation

    public: + SplineSet( string const & name = "SplineSet" ); virtual @@ -212,6 +223,8 @@

    Navigation

    return m_Ymax[idx]; } + + Spline * getSpline( integer i ) const; Spline * @@ -220,6 +233,8 @@

    Navigation

    return m_splines[idx]; } + + real_type operator () ( real_type x, integer spl ) const { Spline const * S = this->getSpline(spl); @@ -328,9 +343,9 @@

    Navigation

    return S->DDDDD(x); } + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // \group Evaluate to std vector void eval( real_type x, vector<real_type> & vals ) const; @@ -345,7 +360,6 @@

    Navigation

    void eval_DDDDD( real_type x, vector<real_type> & vals ) const; - // \group Evaluate to vector void eval( @@ -390,9 +404,7 @@

    Navigation

    ) const; - // \group Evaluate using another spline as independent - // change independent variable void eval2( integer spl, @@ -422,7 +434,6 @@

    Navigation

    ) const; - // \group Evaluate using another spline as independent void eval2( @@ -457,7 +468,7 @@

    Navigation

    ) const; - // \group Evaluate using another spline as independent + // \name Evaluate using another spline as independent real_type eval2( @@ -488,7 +499,6 @@

    Navigation

    ) const; - // \group Evaluate using another spline as independent real_type eval2( @@ -519,7 +529,6 @@

    Navigation

    ) const; - // \group Evaluate onto a vector void eval( real_type x, GenericContainer & vals ) const; @@ -542,6 +551,7 @@

    Navigation

    ) const; + void eval2( real_type zeta, @@ -572,6 +582,8 @@

    Navigation

    GenericContainer & vals ) const; + + void eval2( real_type zeta, @@ -610,6 +622,7 @@

    Navigation

    this->eval2( zetas, this->getPosition(indep), columns, vals ); } + void eval_D( real_type x, @@ -636,6 +649,9 @@

    Navigation

    GenericContainer & vals ) const; + + + void eval2_D( real_type zeta, @@ -666,6 +682,8 @@

    Navigation

    GenericContainer & vals ) const; + + void eval2_D( real_type zeta, @@ -704,6 +722,8 @@

    Navigation

    this->eval2_D( zetas, this->getPosition(indep), columns, vals ); } + + void eval_DD( real_type x, @@ -760,6 +780,8 @@

    Navigation

    GenericContainer & vals ) const; + + void eval2_DD( real_type zeta, @@ -798,6 +820,7 @@

    Navigation

    this->eval2_DD( zetas, this->getPosition(indep), columns, vals ); } + void eval_DDD( real_type x, @@ -824,6 +847,7 @@

    Navigation

    GenericContainer & vals ) const; + void eval2_DDD( real_type zeta, @@ -854,6 +878,7 @@

    Navigation

    GenericContainer & vals ) const; + void eval2_DDD( real_type zeta, @@ -893,6 +918,7 @@

    Navigation

    } + void build( integer nspl, @@ -911,6 +937,7 @@

    Navigation

    build( GenericContainer const & gc ) { this->setup(gc); } + unsigned type() const { return SPLINE_SET_TYPE; } @@ -945,13 +972,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -994,7 +1023,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -1003,7 +1032,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.html b/docs/api-cpp/program_listing_file_SplineSetGC.cc.html similarity index 97% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.html rename to docs/api-cpp/program_listing_file_SplineSetGC.cc.html index acf3d02e..4197a57c 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.html +++ b/docs/api-cpp/program_listing_file_SplineSetGC.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineSetGC.cc — Splines documentation + Program Listing for File SplineSetGC.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineSetGC.cc +

    Program Listing for File SplineSetGC.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineSetGC.cc)

    +

    Return to documentation for file (SplineSetGC.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -101,20 +111,20 @@ 

    Navigation

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - using GenericContainerNamespace::GC_INTEGER; - using GenericContainerNamespace::GC_VEC_BOOL; - using GenericContainerNamespace::GC_VEC_INTEGER; - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::GC_VEC_STRING; - using GenericContainerNamespace::GC_VECTOR; - using GenericContainerNamespace::GC_MAP; - using GenericContainerNamespace::GC_MAT_REAL; - using GenericContainerNamespace::mat_real_type; - using GenericContainerNamespace::vec_int_type; - using GenericContainerNamespace::vec_real_type; - using GenericContainerNamespace::vec_string_type; - using GenericContainerNamespace::vector_type; - using GenericContainerNamespace::map_type; + using GC_namespace::GC_INTEGER; + using GC_namespace::GC_VEC_BOOL; + using GC_namespace::GC_VEC_INTEGER; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::GC_VEC_STRING; + using GC_namespace::GC_VECTOR; + using GC_namespace::GC_MAP; + using GC_namespace::GC_MAT_REAL; + using GC_namespace::mat_real_type; + using GC_namespace::vec_int_type; + using GC_namespace::vec_real_type; + using GC_namespace::vec_string_type; + using GC_namespace::vector_type; + using GC_namespace::map_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -143,7 +153,7 @@

    Navigation

    m_nspl = integer(spline_type_vec.size()); stype.resize( size_t(m_nspl) ); for ( size_t spl = 0; spl < size_t(m_nspl); ++spl ) - stype[spl] = string_to_splineType( spline_type_vec[spl] ); + stype[spl] = string_to_splineType1D( spline_type_vec[spl] ); UTILS_ASSERT( gc.exists("xdata"), "{}, missing `xdata` field!\n", msg @@ -924,13 +934,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -973,7 +985,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -982,7 +994,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.html b/docs/api-cpp/program_listing_file_SplineVec.cc.html similarity index 97% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.html rename to docs/api-cpp/program_listing_file_SplineVec.cc.html index 04ef879a..1dbdbd71 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.html +++ b/docs/api-cpp/program_listing_file_SplineVec.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplineVec.cc — Splines documentation + Program Listing for File SplineVec.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineVec.cc +

    Program Listing for File SplineVec.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineVec.cc)

    +

    Return to documentation for file (SplineVec.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -102,7 +112,7 @@ 

    Navigation

    using std::abs; using std::sqrt; - using GenericContainerNamespace::mat_real_type; + using GC_namespace::mat_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -633,13 +643,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -682,7 +694,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -691,7 +703,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.html b/docs/api-cpp/program_listing_file_SplineVec.hxx.html similarity index 74% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.html rename to docs/api-cpp/program_listing_file_SplineVec.hxx.html index e80f302f..4b3fe185 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.html +++ b/docs/api-cpp/program_listing_file_SplineVec.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File SplineVec.hxx — Splines documentation + Program Listing for File SplineVec.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplineVec.hxx +

    Program Listing for File SplineVec.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplineVec.hxx)

    +

    Return to documentation for file (SplineVec.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -121,59 +131,48 @@ 

    Navigation

    mutable Utils::BinarySearch<integer> m_bs; void initLastInterval(); - - void - allocate( integer dim, integer npts ); - - void - computeChords(); + void allocate( integer dim, integer npts ); + void computeChords(); public: + SplineVec( string const & name = "SplineVec" ); virtual ~SplineVec(); + integer search( real_type & x ) const; - bool is_closed() const { return m_curve_is_closed; } - void make_closed() { m_curve_is_closed = true; } - void make_open() { m_curve_is_closed = false; } + string const & name() const { return m_name; } - bool can_extend() const { return m_curve_can_extend; } - void make_unbounded() { m_curve_can_extend = true; } - void make_buonded() { m_curve_can_extend = false; } + bool is_closed() const { return m_curve_is_closed; } + void make_closed() { m_curve_is_closed = true; } + void make_open() { m_curve_is_closed = false; } - string const & name() const { return m_name; } + bool can_extend() const { return m_curve_can_extend; } + void make_unbounded() { m_curve_can_extend = true; } + void make_buonded() { m_curve_can_extend = false; } - integer - numPoints() const - { return m_npts; } - integer - dimension() const - { return m_dim; } + integer numPoints() const { return m_npts; } - real_type const * - xNodes() const - { return m_X; } + integer dimension() const { return m_dim; } - real_type - xNode( integer npt ) const - { return m_X[size_t(npt)]; } + real_type const * xNodes() const { return m_X; } + + real_type xNode( integer npt ) const { return m_X[size_t(npt)]; } real_type yNode( integer npt, integer j ) const { return m_Y[size_t(j)][size_t(npt)]; } - real_type - xMin() const - { return m_X[0]; } + real_type xMin() const { return m_X[0]; } + + real_type xMax() const { return m_X[size_t(m_npts-1)]; } + - real_type - xMax() const - { return m_X[size_t(m_npts-1)]; } real_type operator () ( real_type x, integer i ) const; @@ -259,23 +258,17 @@

    Navigation

    integer inc ) const; - void - eval( real_type x, vector<real_type> & vals ) const; + void eval( real_type x, vector<real_type> & vals ) const; - void - eval_D( real_type x, vector<real_type> & vals ) const; + void eval_D( real_type x, vector<real_type> & vals ) const; - void - eval_DD( real_type x, vector<real_type> & vals ) const; + void eval_DD( real_type x, vector<real_type> & vals ) const; - void - eval_DDD( real_type x, vector<real_type> & vals ) const; + void eval_DDD( real_type x, vector<real_type> & vals ) const; - void - eval_DDDD( real_type x, vector<real_type> & vals ) const; + void eval_DDDD( real_type x, vector<real_type> & vals ) const; - void - eval_DDDDD( real_type x, vector<real_type> & vals ) const; + void eval_DDDDD( real_type x, vector<real_type> & vals ) const; void eval( real_type x, GenericContainer & vals ) const @@ -319,6 +312,7 @@

    Navigation

    void eval_DDDDD( vec_real_type const & x, GenericContainer & vals ) const; + void setup( integer dim, @@ -334,42 +328,30 @@

    Navigation

    integer ldY ); - void - setKnots( real_type const * X ); + void setKnots( real_type const * X ); - void - setKnotsChordLength(); + void setKnotsChordLength(); - void - setKnotsCentripetal(); + void setKnotsCentripetal(); - void - setKnotsFoley(); + void setKnotsFoley(); + + void CatmullRom(); void - CatmullRom(); + build( GenericContainer const & gc ) + { setup(gc); } - real_type - curvature( real_type x ) const; - real_type - curvature_D( real_type x ) const; + real_type curvature( real_type x ) const; - virtual - void - setup( GenericContainer const & gc ); + real_type curvature_D( real_type x ) const; - void - build( GenericContainer const & gc ) - { setup(gc); } + void setup( GenericContainer const & gc ); - virtual - unsigned - type() const - { return SPLINE_VEC_TYPE; } + unsigned type() const { return SPLINE_VEC_TYPE; } - string - info() const; + string info() const; void info( ostream_type & stream ) const @@ -382,7 +364,7 @@

    Navigation

    } -// EOF: SplineSet.hxx +// EOF: SplineVec.hxx
    @@ -398,13 +380,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -447,7 +431,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -456,7 +440,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.html b/docs/api-cpp/program_listing_file_Splines.cc.html similarity index 93% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.html rename to docs/api-cpp/program_listing_file_Splines.cc.html index 23fd739d..1e5399b5 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.html +++ b/docs/api-cpp/program_listing_file_Splines.cc.html @@ -7,16 +7,26 @@ - Program Listing for File Splines.cc — Splines documentation + Program Listing for File Splines.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File Splines.cc +

    Program Listing for File Splines.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines.cc)

    +

    Return to documentation for file (Splines.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -250,18 +260,37 @@ 

    Navigation

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + static char const * spline_type_2D[] = { + "bilinear", // 0 + "bicubic", // 1 + "biquintic", // 2 + "akima", // 3 + nullptr + }; + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + #ifndef DOXYGEN_SHOULD_SKIP_THIS SplineType1D - string_to_splineType( std::string const & nin ) { + string_to_splineType1D( std::string const & nin ) { std::string n = nin; std::transform(n.begin(), n.end(), n.begin(), ::tolower); for ( size_t j = 0; spline_type_1D[j] != nullptr; ++j ) { if ( spline_type_1D[j] == n ) return SplineType1D(j); } - throw std::runtime_error(fmt::format( "string_to_splineType({}) unknown type\n", n )); + throw std::runtime_error(fmt::format( "string_to_splineType1D({}) unknown type\n", n )); } + SplineType2D + string_to_splineType2D( std::string const & nin ) { + std::string n = nin; + std::transform(n.begin(), n.end(), n.begin(), ::tolower); + for ( size_t j = 0; spline_type_2D[j] != nullptr; ++j ) { + if ( spline_type_2D[j] == n ) return SplineType2D(j); + } + throw std::runtime_error(fmt::format( "string_to_splineType2D({}) unknown type\n", n )); + } #endif /*\ @@ -577,8 +606,8 @@

    Navigation

    // |_| |_| */ - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -624,13 +653,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -673,7 +704,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -682,7 +713,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.html b/docs/api-cpp/program_listing_file_Splines.hh.html similarity index 79% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.html rename to docs/api-cpp/program_listing_file_Splines.hh.html index a1b16e20..e42e214b 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.html +++ b/docs/api-cpp/program_listing_file_Splines.hh.html @@ -7,16 +7,26 @@ - Program Listing for File Splines.hh — Splines documentation + Program Listing for File Splines.hh — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File Splines.hh +

    Program Listing for File Splines.hh

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines.hh)

    +

    Return to documentation for file (Splines.hh)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -147,14 +157,15 @@ 

    Navigation

    extern char const *spline_type_1D[]; #ifndef DOXYGEN_SHOULD_SKIP_THIS - extern SplineType1D string_to_splineType( string const & n ); + extern SplineType1D string_to_splineType1D( string const & n ); + extern SplineType2D string_to_splineType2D( string const & n ); #endif - using GenericContainerNamespace::GenericContainer; - using GenericContainerNamespace::vec_real_type; - using GenericContainerNamespace::vec_string_type; - using GenericContainerNamespace::vector_type; - using GenericContainerNamespace::map_type; + using GC_namespace::GenericContainer; + using GC_namespace::vec_real_type; + using GC_namespace::vec_string_type; + using GC_namespace::vector_type; + using GC_namespace::map_type; /* // _ _ _ _ @@ -180,6 +191,59 @@

    Navigation

    #endif + static + inline + void + Hermite3toPoly( + real_type H, + real_type P0, + real_type P1, + real_type DP0, + real_type DP1, + real_type & A, + real_type & B, + real_type & C, + real_type & D + ) { + real_type H2 = H*H; + real_type P10 = P1-P0; + A = (DP0+DP1-2*P10/H)/H2; + B = (3*P10/H-(2*DP0+DP1))/H; + C = DP0; + D = P0; + } + + static + inline + void + Hermite5toPoly( + real_type h, + real_type P0, + real_type P1, + real_type DP0, + real_type DP1, + real_type DDP0, + real_type DDP1, + real_type & A, + real_type & B, + real_type & C, + real_type & D, + real_type & E, + real_type & F + ) { + real_type h2 = h*h; + real_type h3 = h*h2; + real_type P10 = P1-P0; + A = ( (DDP1-DDP0)/2+(6*P10/h-3*(DP0+DP1))/h)/h3; + B = ( (1.5*DDP0-DDP1)+ ((8*DP0+7*DP1)-15*P10/h)/h )/h2; + C = ( 0.5*DDP1-1.5*DDP0 + (10*P10/h -(6*DP0+4*DP1))/h )/h; + D = DDP0/2; + E = DP0; + F = P0; + } + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + /* // ____ _ _ _ // | __ )(_) (_)_ __ ___ __ _ _ __ @@ -191,7 +255,7 @@

    Navigation

    #ifndef DOXYGEN_SHOULD_SKIP_THIS real_type - bilinear3( + bilinear3( real_type const p[4], real_type const M[4][4], real_type const q[4] @@ -309,6 +373,7 @@

    Navigation

    public: + Spline( string const & name = "Spline" ) : m_name(name) , m_curve_is_closed(false) @@ -321,10 +386,12 @@

    Navigation

    { this->initLastInterval(); } + virtual ~Spline() {} + integer search( real_type & x ) const; @@ -342,6 +409,8 @@

    Navigation

    void make_extended_constant() { m_curve_extended_constant = true; } void make_extended_not_constant() { m_curve_extended_constant = false; } + + integer numPoints() const { return m_npts; } real_type xNode( integer i ) const { return m_X[size_t(i)]; } @@ -374,14 +443,28 @@

    Navigation

    return *std::max_element(m_Y,m_Y+N); } - void setOrigin( real_type x0 ); - - void setRange( real_type xmin, real_type xmax ); + virtual + void + y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const { + i_min_pos = i_max_pos = 0; + x_min_pos = y_min = x_max_pos = y_max = 0; + UTILS_ERROR( + "In spline: {} y_min_max not implemented\n", + info() + ); + } void - build( GenericContainer const & gc ) + build( GenericContainer const & gc ) { setup(gc); } virtual @@ -417,15 +500,19 @@

    Navigation

    - virtual - void reserve( integer npts ) = 0; + virtual void reserve( integer npts ) = 0; void pushBack( real_type x, real_type y ); void dropBack() { if ( m_npts > 0 ) --m_npts; } - virtual - void clear() = 0; + virtual void clear() = 0; + + + + void setOrigin( real_type x0 ); + + void setRange( real_type xmin, real_type xmax ); @@ -447,28 +534,21 @@

    Navigation

    file.close(); } - virtual - void writeToStream( ostream_type & s ) const = 0; + virtual void writeToStream( ostream_type & s ) const = 0; - virtual - real_type operator () ( real_type x ) const = 0; + virtual real_type operator () ( real_type x ) const = 0; - virtual - real_type D( real_type x ) const = 0; + virtual real_type D( real_type x ) const = 0; - virtual - real_type DD( real_type x ) const = 0; + virtual real_type DD( real_type x ) const = 0; - virtual - real_type DDD( real_type x ) const = 0; + virtual real_type DDD( real_type x ) const = 0; - virtual - real_type DDDD( real_type ) const { return real_type(0); } + virtual real_type DDDD( real_type ) const { return real_type(0); } - virtual - real_type DDDDD( real_type ) const { return real_type(0); } + virtual real_type DDDDD( real_type ) const { return real_type(0); } real_type eval( real_type x ) const { return (*this)(x); } real_type eval_D( real_type x ) const { return this->D(x); } @@ -477,23 +557,17 @@

    Navigation

    real_type eval_DDDD( real_type x ) const { return this->DDDD(x); } real_type eval_DDDDD( real_type x ) const { return this->DDDDD(x); } - virtual - real_type id_eval( integer ni, real_type x ) const = 0; + virtual real_type id_eval( integer ni, real_type x ) const = 0; - virtual - real_type id_D( integer ni, real_type x ) const = 0; + virtual real_type id_D( integer ni, real_type x ) const = 0; - virtual - real_type id_DD( integer ni, real_type x ) const = 0; + virtual real_type id_DD( integer ni, real_type x ) const = 0; - virtual - real_type id_DDD( integer ni, real_type x ) const = 0; + virtual real_type id_DDD( integer ni, real_type x ) const = 0; - virtual - real_type id_DDDD( integer, real_type ) const { return real_type(0); } + virtual real_type id_DDDD( integer, real_type ) const { return real_type(0); } - virtual - real_type id_DDDDD( integer, real_type ) const { return real_type(0); } + virtual real_type id_DDDDD( integer, real_type ) const { return real_type(0); } @@ -505,15 +579,13 @@

    Navigation

    bool transpose = false ) const = 0; - virtual - integer - order() const = 0; + virtual integer order() const = 0; + char const * type_name() const { return Splines::spline_type_1D[type()]; } - virtual - unsigned type() const = 0; + virtual unsigned type() const = 0; string info() const; @@ -522,14 +594,11 @@

    Navigation

    }; - real_type - curvature( real_type s, Spline const & X, Spline const & Y ); + real_type curvature( real_type s, Spline const & X, Spline const & Y ); - real_type - curvature_D( real_type s, Spline const & X, Spline const & Y ); + real_type curvature_D( real_type s, Spline const & X, Spline const & Y ); - real_type - curvature_DD( real_type s, Spline const & X, Spline const & Y ); + real_type curvature_DD( real_type s, Spline const & X, Spline const & Y ); /*\ | ____ _ _ ____ _ _ ____ @@ -579,6 +648,16 @@

    Navigation

    real_type * & p_dy ); + void + y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const override; + // --------------------------- VIRTUALS ----------------------------------- real_type operator () ( real_type x ) const override; @@ -596,7 +675,6 @@

    Navigation

    void reserve( integer npts ) override; - // must be defined in derived classes void build( real_type const * x, integer incx, @@ -644,6 +722,7 @@

    Navigation

    | |____/| .__/|_|_|_| |_|\___|____/ \__,_|_| |_| | |_| \*/ + class SplineSurf { SplineSurf( SplineSurf const & ) = delete; // block copy constructor @@ -695,6 +774,14 @@

    Navigation

    virtual void makeSpline() = 0; + void + load_Z( + real_type const * z, + integer ldZ, + bool fortran_storage, + bool transposed + ); + public: SplineSurf( string const & name = "Spline" ) @@ -720,20 +807,28 @@

    Navigation

    ~SplineSurf(); bool is_x_closed() const { return m_x_closed; } - void make_x_closed() { m_x_closed = true; } - void make_x_opened() { m_x_closed = false; } + + void make_x_closed() { m_x_closed = true; } + + void make_x_opened() { m_x_closed = false; } bool is_y_closed() const { return m_y_closed; } - void make_y_closed() { m_y_closed = true; } - void make_y_opened() { m_y_closed = false; } + + void make_y_closed() { m_y_closed = true; } + + void make_y_opened() { m_y_closed = false; } bool is_x_bounded() const { return m_x_can_extend; } - void make_x_unbounded() { m_x_can_extend = true; } - void make_x_bounded() { m_x_can_extend = false; } + + void make_x_unbounded() { m_x_can_extend = true; } + + void make_x_bounded() { m_x_can_extend = false; } bool is_y_bounded() const { return m_y_can_extend; } - void make_y_unbounded() { m_y_can_extend = true; } - void make_y_bounded() { m_y_can_extend = false; } + + void make_y_unbounded() { m_y_can_extend = true; } + + void make_y_bounded() { m_y_can_extend = false; } string const & name() const { return m_name; } @@ -763,7 +858,6 @@

    Navigation

    real_type zMax() const { return m_Z_max; } - void build( real_type const * x, integer incx, @@ -811,17 +905,14 @@

    Navigation

    bool fortran_storage = false, bool transposed = false ) { - if ( fortran_storage ) - this->build( &z.front(), nx, nx, ny, fortran_storage, transposed ); - else - this->build( &z.front(), ny, nx, ny, fortran_storage, transposed ); + this->build( &z.front(), nx, ny, fortran_storage ? nx : ny, fortran_storage, transposed ); } void setup( GenericContainer const & gc ); void - build ( GenericContainer const & gc ) + build( GenericContainer const & gc ) { setup(gc); } virtual @@ -890,6 +981,8 @@

    Navigation

    info( ostream_type & stream ) const { stream << this->info() << '\n'; } + void dump_data( ostream_type & s ) const; + }; } @@ -966,13 +1059,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -1015,7 +1110,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -1024,7 +1119,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.html b/docs/api-cpp/program_listing_file_Splines1D.cc.html similarity index 88% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.html rename to docs/api-cpp/program_listing_file_Splines1D.cc.html index 0f60aac5..d4b310dd 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.html +++ b/docs/api-cpp/program_listing_file_Splines1D.cc.html @@ -7,16 +7,26 @@ - Program Listing for File Splines1D.cc — Splines documentation + Program Listing for File Splines1D.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File Splines1D.cc +

    Program Listing for File Splines1D.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines1D.cc)

    +

    Return to documentation for file (Splines1D.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -137,8 +147,8 @@ 

    Navigation

    // |_| |_| */ - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -195,13 +205,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -244,7 +256,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -253,7 +265,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.html b/docs/api-cpp/program_listing_file_Splines1D.hxx.html similarity index 94% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.html rename to docs/api-cpp/program_listing_file_Splines1D.hxx.html index 8068709e..7faee3d1 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.html +++ b/docs/api-cpp/program_listing_file_Splines1D.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File Splines1D.hxx — Splines documentation + Program Listing for File Splines1D.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File Splines1D.hxx +

    Program Listing for File Splines1D.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines1D.hxx)

    +

    Return to documentation for file (Splines1D.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -109,6 +119,7 @@ 

    Navigation

    public: + Spline1D( std::string const & n ) : m_name(n) , m_pSpline(nullptr) @@ -117,6 +128,7 @@

    Navigation

    ~Spline1D() {} + string const & name() const { return m_pSpline->name(); } bool is_closed() const { return m_pSpline->is_closed(); } @@ -182,8 +194,7 @@

    Navigation

    this->build( tp, &x.front(), &y.front(), n ); } - void - clear() { m_pSpline->clear(); } + void clear() { m_pSpline->clear(); } real_type xMin() const { return m_pSpline->xMin(); } @@ -256,6 +267,7 @@

    Navigation

    real_type id_DDDDD( integer ni, real_type x ) const { return m_pSpline->id_DDDDD(ni,x); } + integer // order coeffs( real_type * const cfs, @@ -306,13 +318,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -355,7 +369,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -364,7 +378,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file_Splines2D.cc.html b/docs/api-cpp/program_listing_file_Splines2D.cc.html new file mode 100644 index 00000000..c56b182f --- /dev/null +++ b/docs/api-cpp/program_listing_file_Splines2D.cc.html @@ -0,0 +1,216 @@ + + + + + + + + + + Program Listing for File Splines2D.cc — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    Program Listing for File Splines2D.cc +

    +

    Return to documentation for file (Splines2D.cc)

    +
    +
    /*--------------------------------------------------------------------------*\
    + |                                                                          |
    + |  Copyright (C) 2016                                                      |
    + |                                                                          |
    + |         , __                 , __                                        |
    + |        /|/  \               /|/  \                                       |
    + |         | __/ _   ,_         | __/ _   ,_                                |
    + |         |   \|/  /  |  |   | |   \|/  /  |  |   |                        |
    + |         |(__/|__/   |_/ \_/|/|(__/|__/   |_/ \_/|/                       |
    + |                           /|                   /|                        |
    + |                           \|                   \|                        |
    + |                                                                          |
    + |      Enrico Bertolazzi                                                   |
    + |      Dipartimento di Ingegneria Industriale                              |
    + |      Universita` degli Studi di Trento                                   |
    + |      email: enrico.bertolazzi@unitn.it                                   |
    + |                                                                          |
    +\*--------------------------------------------------------------------------*/
    +
    +#include "Splines.hh"
    +
    +#ifdef __clang__
    +#pragma clang diagnostic ignored "-Wc++98-compat"
    +#pragma clang diagnostic ignored "-Wglobal-constructors"
    +#pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
    +#pragma clang diagnostic ignored "-Wpoison-system-directories"
    +#endif
    +
    +namespace Splines {
    +
    +  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +
    +  void
    +  Spline2D::new_spline( SplineType2D tp ) {
    +    if ( m_spline_2D == nullptr ) {
    +      delete m_spline_2D;
    +      m_spline_2D = nullptr;
    +    }
    +    switch ( tp ) {
    +    case BILINEAR_TYPE:
    +      m_spline_2D = new BilinearSpline(m_name);
    +      break;
    +    case BICUBIC_TYPE:
    +      m_spline_2D = new BiCubicSpline(m_name);
    +      break;
    +    case BIQUINTIC_TYPE:
    +      m_spline_2D = new BiQuinticSpline(m_name);
    +      break;
    +    case AKIMA2D_TYPE:
    +      m_spline_2D = new Akima2Dspline(m_name);
    +      break;
    +    default:
    +      UTILS_ERROR( "new_spline, type `{}` unknown\n", tp );
    +    }
    +  }
    +
    +}
    +
    +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.html b/docs/api-cpp/program_listing_file_Splines2D.hxx.html similarity index 58% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.html rename to docs/api-cpp/program_listing_file_Splines2D.hxx.html index 1c015939..cd15f6cf 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.html +++ b/docs/api-cpp/program_listing_file_Splines2D.hxx.html @@ -7,16 +7,26 @@ - Program Listing for File Splines2D.hxx — Splines documentation + Program Listing for File Splines2D.hxx — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File Splines2D.hxx +

    Program Listing for File Splines2D.hxx

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines2D.hxx)

    +

    Return to documentation for file (Splines2D.hxx)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -100,69 +110,84 @@ 

    Navigation

    class Spline2D { protected: std::string m_name; - SplineSurf * m_pSpline2D; + SplineSurf * m_spline_2D; + + void new_spline( SplineType2D tp ); + public: + Spline2D( string const & name = "Spline2D" ) : m_name(name) - , m_pSpline2D( nullptr ) + , m_spline_2D( nullptr ) {} - ~Spline2D() - {} + virtual + ~Spline2D() { + if ( m_spline_2D != nullptr ) { + delete m_spline_2D; + m_spline_2D = nullptr; + } + } + + + bool is_x_closed() const { return m_spline_2D->is_x_closed(); } + + void make_x_closed() { m_spline_2D->make_x_closed(); } + + void make_x_opened() { m_spline_2D->make_x_opened(); } + + bool is_y_closed() const { return m_spline_2D->is_y_closed(); } + + void make_y_closed() { m_spline_2D->make_y_closed(); } + + void make_y_opened() { m_spline_2D->make_y_opened(); } - bool is_x_closed() const { return m_pSpline2D->is_x_closed(); } - void make_x_closed() { m_pSpline2D->make_x_closed(); } - void make_x_opened() { m_pSpline2D->make_x_opened(); } + bool is_x_bounded() const { return m_spline_2D->is_x_bounded(); } - bool is_y_closed() const { return m_pSpline2D->is_y_closed(); } - void make_y_closed() { m_pSpline2D->make_y_closed(); } - void make_y_opened() { m_pSpline2D->make_y_opened(); } + void make_x_unbounded() { m_spline_2D->make_x_unbounded(); } - bool is_x_bounded() const { return m_pSpline2D->is_x_bounded(); } - void make_x_unbounded() { m_pSpline2D->make_x_unbounded(); } - void make_x_bounded() { m_pSpline2D->make_x_bounded(); } + void make_x_bounded() { m_spline_2D->make_x_bounded(); } - bool is_y_bounded() const { return m_pSpline2D->is_y_bounded(); } - void make_y_unbounded() { m_pSpline2D->make_y_unbounded(); } - void make_y_bounded() { m_pSpline2D->make_y_bounded(); } + bool is_y_bounded() const { return m_spline_2D->is_y_bounded(); } - string const & name() const { return m_pSpline2D->name(); } + void make_y_unbounded() { m_spline_2D->make_y_unbounded(); } - void clear() { m_pSpline2D->clear(); } + void make_y_bounded() { m_spline_2D->make_y_bounded(); } + + string const & name() const { return m_spline_2D->name(); } + + void clear() { m_spline_2D->clear(); } integer - numPointX() const { return m_pSpline2D->numPointX(); } + numPointX() const { return m_spline_2D->numPointX(); } integer - numPointY() const { return m_pSpline2D->numPointY(); } + numPointY() const { return m_spline_2D->numPointY(); } real_type - xNode( integer i ) const { return m_pSpline2D->xNode(i); } + xNode( integer i ) const { return m_spline_2D->xNode(i); } real_type - yNode( integer i ) const { return m_pSpline2D->yNode(i); } + yNode( integer i ) const { return m_spline_2D->yNode(i); } real_type - zNode( integer i, integer j ) const { return m_pSpline2D->zNode(i,j); } + zNode( integer i, integer j ) const { return m_spline_2D->zNode(i,j); } - real_type - xMin() const { return m_pSpline2D->xMin(); } - real_type - xMax() const { return m_pSpline2D->xMax(); } + real_type xMin() const { return m_spline_2D->xMin(); } - real_type - yMin() const { return m_pSpline2D->yMin(); } + real_type xMax() const { return m_spline_2D->xMax(); } - real_type - yMax() const { return m_pSpline2D->yMax(); } + real_type yMin() const { return m_spline_2D->yMin(); } + + real_type yMax() const { return m_spline_2D->yMax(); } + + real_type zMin() const { return m_spline_2D->zMin(); } + + real_type zMax() const { return m_spline_2D->zMax(); } - real_type - zMin() const { return m_pSpline2D->zMin(); } - real_type - zMax() const { return m_pSpline2D->zMax(); } void build( @@ -174,20 +199,28 @@

    Navigation

    integer ny, bool fortran_storage = false, bool transposed = false - ); + ) { + new_spline( tp ); + m_spline_2D->build( + x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed + ); + } void - build( + build( SplineType2D tp, vector<real_type> const & x, vector<real_type> const & y, vector<real_type> const & z, bool fortran_storage = false, bool transposed = false - ); + ) { + new_spline( tp ); + m_spline_2D->build( x, y, z, fortran_storage, transposed ); + } void - build( + build( SplineType2D tp, real_type const * z, integer ldZ, @@ -195,94 +228,118 @@

    Navigation

    integer ny, bool fortran_storage = false, bool transposed = false - ); + ) { + new_spline( tp ); + m_spline_2D->build( z, ldZ, nx, ny, fortran_storage, transposed ); + } void - build( + build( SplineType2D tp, vector<real_type> const & z, integer nx, integer ny, bool fortran_storage = false, bool transposed = false - ); + ) { + new_spline( tp ); + m_spline_2D->build( z, nx, ny, fortran_storage, transposed ); + } void - setup( GenericContainer const & gc ) - { build(gc); } + setup( GenericContainer const & gc ) { + string msg = fmt::format("Spline2D[{}]::setup( gc ):", m_name ); + UTILS_ASSERT( + gc.exists("spline_type"), "{}, missing `spline_type` field!\n", msg + ); + string type = gc("spline_type").get_string(); + new_spline( string_to_splineType2D( type ) ); + + m_spline_2D->setup( gc ); + } void - build( GenericContainer const & gc ); + build( GenericContainer const & gc ) + { setup(gc); } - real_type - operator () ( real_type x, real_type y ) const - { return (*m_pSpline2D)( x, y ); } - void - D( real_type x, real_type y, real_type d[3] ) const - { return m_pSpline2D->D( x, y, d ); } real_type - Dx( real_type x, real_type y ) const - { return m_pSpline2D->Dx( x, y ); } + operator () ( real_type x, real_type y ) const + { return (*m_spline_2D)( x, y ); } real_type - Dy( real_type x, real_type y ) const - { return m_pSpline2D->Dy( x, y ); } + eval( real_type x, real_type y ) const + { return (*this)(x,y); } + void - DD( real_type x, real_type y, real_type dd[6] ) const - { return m_pSpline2D->DD( x, y, dd ); } + D( real_type x, real_type y, real_type d[3] ) const + { return m_spline_2D->D( x, y, d ); } real_type - Dxx( real_type x, real_type y ) const - { return m_pSpline2D->Dxx( x, y ); } + Dx( real_type x, real_type y ) const + { return m_spline_2D->Dx( x, y ); } real_type - Dxy( real_type x, real_type y ) const - { return m_pSpline2D->Dxy( x, y ); } + Dy( real_type x, real_type y ) const + { return m_spline_2D->Dy( x, y ); } real_type - Dyy( real_type x, real_type y ) const - { return m_pSpline2D->Dyy( x, y ); } + eval_D_1( real_type x, real_type y ) const + { return this->Dx(x,y); } real_type - eval( real_type x, real_type y ) const - { return (*this)(x,y); } + eval_D_2( real_type x, real_type y ) const + { return this->Dy(x,y); } + + + void + DD( real_type x, real_type y, real_type dd[6] ) const + { return m_spline_2D->DD( x, y, dd ); } real_type - eval_D_1( real_type x, real_type y ) const - { return this->Dx(x,y); } + Dxx( real_type x, real_type y ) const + { return m_spline_2D->Dxx( x, y ); } real_type - eval_D_2( real_type x, real_type y ) const - { return this->Dy(x,y); } + Dxy( real_type x, real_type y ) const + { return m_spline_2D->Dxy( x, y ); } real_type - eval_D_1_1( real_type x, real_type y ) const + Dyy( real_type x, real_type y ) const + { return m_spline_2D->Dyy( x, y ); } + + real_type + eval_D_1_1( real_type x, real_type y ) const { return this->Dxx(x,y); } real_type - eval_D_1_2( real_type x, real_type y ) const + eval_D_1_2( real_type x, real_type y ) const { return this->Dxy(x,y); } real_type - eval_D_2_2( real_type x, real_type y ) const + eval_D_2_2( real_type x, real_type y ) const { return this->Dyy(x,y); } void - writeToStream( ostream_type & s ) const - { return m_pSpline2D->writeToStream( s ); } + writeToStream( ostream_type & s ) const + { return m_spline_2D->writeToStream( s ); } - char const * type_name() const { return m_pSpline2D->type_name(); } + char const * type_name() const { return m_spline_2D->type_name(); } string info() const - { return m_pSpline2D->info(); } + { return m_spline_2D->info(); } void info( ostream_type & stream ) const - { m_pSpline2D->info( stream ); } + { m_spline_2D->info( stream ); } + + void + dump_data( ostream_type & stream ) const + { m_spline_2D->dump_data( stream ); } + }; } @@ -303,13 +360,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -352,7 +411,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -361,7 +420,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.html b/docs/api-cpp/program_listing_file_SplinesBivariate.cc.html similarity index 79% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.html rename to docs/api-cpp/program_listing_file_SplinesBivariate.cc.html index 303a3a67..9f4b92c6 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.html +++ b/docs/api-cpp/program_listing_file_SplinesBivariate.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplinesBivariate.cc — Splines documentation + Program Listing for File SplinesBivariate.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplinesBivariate.cc +

    Program Listing for File SplinesBivariate.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesBivariate.cc)

    +

    Return to documentation for file (SplinesBivariate.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -99,6 +109,8 @@ 

    Navigation

    namespace Splines { + #ifndef DOXYGEN_SHOULD_SKIP_THIS + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SplineSurf::~SplineSurf() @@ -116,7 +128,7 @@

    Navigation

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSurf::clear(void) { + SplineSurf::clear() { m_mem.free(); m_nx = m_ny = 0; m_X = m_Y = m_Z = nullptr; @@ -126,7 +138,66 @@

    Navigation

    } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + void + SplineSurf::load_Z( + real_type const * z, + integer ldZ, + bool fortran_storage, + bool transposed + ) { + if ( transposed ) { + if ( fortran_storage ) { + UTILS_ASSERT( + ldZ >= m_nx, + "SplineSurf::load_Z[transposed+fortran_storage]\n" + "ldZ = {} must be >= of nx = {}\n", + ldZ, m_nx + ); + for ( integer i = 0; i < m_nx; ++i ) + for ( integer j = 0; j < m_ny; ++j ) + m_Z[size_t(ipos_C(i,j))] = z[size_t(ipos_C(j,i,ldZ))]; + } else { + UTILS_ASSERT( + ldZ >= m_ny, + "SplineSurf::load_Z[transposed]\n" + "ldZ = {} must be >= of ny = {}\n", + ldZ, m_ny + ); + for ( integer i = 0; i < m_nx; ++i ) + for ( integer j = 0; j < m_ny; ++j ) + m_Z[size_t(ipos_C(i,j))] = z[size_t(ipos_F(j,i,ldZ))]; + } + } else { + if ( fortran_storage ) { + UTILS_ASSERT( + ldZ >= m_ny, + "SplineSurf::load_Z[fortran_storage]\n" + "ldZ = {} must be >= of ny = {}\n", + ldZ, m_ny + ); + for ( integer i = 0; i < m_nx; ++i ) + for ( integer j = 0; j < m_ny; ++j ) + m_Z[size_t(ipos_C(i,j))] = z[size_t(ipos_C(i,j,ldZ))]; + } else { + UTILS_ASSERT( + ldZ >= m_nx, + "SplineSurf::load_Z\n" + "ldZ = {} must be >= of nx = {}\n", + ldZ, m_nx + ); + for ( integer i = 0; i < m_nx; ++i ) + for ( integer j = 0; j < m_ny; ++j ) + m_Z[size_t(ipos_C(i,j))] = z[size_t(ipos_F(i,j,ldZ))]; + } + } + m_Z_max = *std::max_element(m_Z,m_Z+m_nx*m_ny); + m_Z_min = *std::min_element(m_Z,m_Z+m_nx*m_ny); + makeSpline(); + } + #endif + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void SplineSurf::build( real_type const * x, integer incx, @@ -145,30 +216,10 @@

    Navigation

    m_Z = m_mem( size_t(nx*ny) ); for ( size_t i = 0; i < size_t(nx); ++i ) m_X[i] = x[i*size_t(incx)]; for ( size_t i = 0; i < size_t(ny); ++i ) m_Y[i] = y[i*size_t(incy)]; - if ( (fortran_storage && transposed) || (!fortran_storage && !transposed) ) { - UTILS_ASSERT( - ldZ >= ny, - "SplineSurf::build, ldZ = {} must be >= of nx = {}\n", ldZ, ny - ); - for ( integer i = 0; i < nx; ++i ) - for ( integer j = 0; j < ny; ++j ) - m_Z[size_t(ipos_C(i,j,ny))] = z[size_t(ipos_C(i,j,ldZ))]; - } else { - UTILS_ASSERT( - ldZ >= nx, - "SplineSurf::build, ldZ = {} must be >= of ny = {}\n", ldZ, nx - ); - for ( integer i = 0; i < nx; ++i ) - for ( integer j = 0; j < ny; ++j ) - m_Z[size_t(ipos_C(i,j,ny))] = z[size_t(ipos_F(i,j,ldZ))]; - } - m_Z_max = *std::max_element(m_Z,m_Z+nx*ny); - m_Z_min = *std::min_element(m_Z,m_Z+nx*ny); - makeSpline(); + load_Z( z, ldZ, fortran_storage, transposed ); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void SplineSurf::build( real_type const * z, @@ -178,13 +229,15 @@

    Navigation

    bool fortran_storage, bool transposed ) { - Utils::Malloc<real_type> mem("SplineSurf::build"); - mem.allocate( size_t(nx+ny) ); - real_type * XX = mem( size_t(nx) ); - real_type * YY = mem( size_t(ny) ); // temporary vector - for ( size_t i = 0; i < size_t(nx); ++i ) XX[i] = real_type(i); - for ( size_t i = 0; i < size_t(ny); ++i ) YY[i] = real_type(i); - build( XX, 1, YY, 1, z, ldZ, nx, ny, fortran_storage, transposed ); + m_nx = nx; + m_ny = ny; + m_mem.reallocate( size_t((nx+1)*(ny+1)) ); + m_X = m_mem( size_t(nx) ); + m_Y = m_mem( size_t(ny) ); + m_Z = m_mem( size_t(nx*ny) ); + for ( size_t i = 0; i < size_t(nx); ++i ) m_X[i] = real_type(i); + for ( size_t i = 0; i < size_t(ny); ++i ) m_Y[i] = real_type(i); + load_Z( z, ldZ, fortran_storage, transposed ); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -198,10 +251,10 @@

    Navigation

    // // 0 2 // - size_t i0 = size_t(ipos_C(i,j,m_ny)); - size_t i1 = size_t(ipos_C(i,j+1,m_ny)); - size_t i2 = size_t(ipos_C(i+1,j,m_ny)); - size_t i3 = size_t(ipos_C(i+1,j+1,m_ny)); + size_t i0 = size_t(ipos_C(i,j)); + size_t i1 = size_t(ipos_C(i,j+1)); + size_t i2 = size_t(ipos_C(i+1,j)); + size_t i3 = size_t(ipos_C(i+1,j+1)); bili3[0][0] = m_Z[i0]; bili3[0][1] = m_Z[i1]; bili3[0][2] = m_DY[i0]; bili3[0][3] = m_DY[i1]; @@ -340,10 +393,10 @@

    Navigation

    integer i, integer j, real_type bili5[6][6] ) const { - size_t i00 = size_t(ipos_C(i,j,m_ny)); - size_t i01 = size_t(ipos_C(i,j+1,m_ny)); - size_t i10 = size_t(ipos_C(i+1,j,m_ny)); - size_t i11 = size_t(ipos_C(i+1,j+1,m_ny)); + size_t i00 = size_t(ipos_C(i,j)); + size_t i01 = size_t(ipos_C(i,j+1)); + size_t i10 = size_t(ipos_C(i+1,j)); + size_t i11 = size_t(ipos_C(i+1,j+1)); // // 1 3 @@ -515,15 +568,36 @@

    Navigation

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - using GenericContainerNamespace::GC_VECTOR; - using GenericContainerNamespace::GC_VEC_INTEGER; - using GenericContainerNamespace::GC_VEC_LONG; - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::GC_MAT_REAL; - using GenericContainerNamespace::mat_real_type; + #ifndef DOXYGEN_SHOULD_SKIP_THIS + + void + SplineSurf::dump_data( ostream_type & s ) const { + s << "X = [ " << m_X[0]; + for ( integer i = 1; i < m_nx; ++i ) s << ", " << m_X[size_t(i)]; + s << " ]\nY = [ " << m_Y[0]; + for ( integer i = 1; i < m_ny; ++i ) s << ", " << m_Y[size_t(i)]; + s << " ]\nZ = [\n"; + for ( integer j = 0; j < m_ny; ++j ) { + s << " [ " << m_Z[size_t(ipos_C(0,j))]; + for ( integer i = 1; i < m_nx; ++i ) + s << ", " << m_Z[size_t(ipos_C(i,j))]; + s << " ]\n"; + } + s << "\n];\n"; + } + + #endif // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + using GC_namespace::GC_VECTOR; + using GC_namespace::GC_VEC_INTEGER; + using GC_namespace::GC_VEC_LONG; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::GC_MAT_REAL; + using GC_namespace::mat_real_type; + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void SplineSurf::setup( GenericContainer const & gc ) { /* @@ -541,105 +615,82 @@

    Navigation

    GenericContainer const & gc_y = gc("ydata"); GenericContainer const & gc_z = gc("zdata"); - vec_real_type x, y; - gc_x.copyto_vec_real( x, (msg+" field `xdata'").c_str() ); - gc_y.copyto_vec_real( y, (msg+" field `ydata'").c_str() ); + m_nx = gc_x.get_num_elements(); + m_ny = gc_y.get_num_elements(); + m_mem.reallocate( size_t((m_nx+1)*(m_ny+1)) ); + m_X = m_mem( size_t(m_nx) ); + m_Y = m_mem( size_t(m_ny) ); + m_Z = m_mem( size_t(m_nx*m_ny) ); + + for ( integer i = 0; i < m_nx; ++i ) m_X[size_t(i)] = gc_x.get_number_at(i); + for ( integer i = 0; i < m_ny; ++i ) m_Y[size_t(i)] = gc_y.get_number_at(i); bool fortran_storage = false; + bool transposed = false; gc.get_if_exists("fortran_storage",fortran_storage); - - bool transposed = false; gc.get_if_exists("transposed",transposed); + /* - // +------+ - // ny | - // + nx + + // +------+ + // j ny | (xi,yj) + // + nx + + // i */ - integer nx = integer( x.size() ); // ncols - integer ny = integer( y.size() ); // nrows - integer ldz = integer( fortran_storage ? ny : nx ); + // cosa mi aspetto in lettura + integer N, M; + if ( transposed ) { N = m_ny; M = m_nx; } + else { N = m_nx; M = m_ny; } + integer LD = fortran_storage ? N : M; if ( GC_MAT_REAL == gc_z.get_type() ) { mat_real_type const & z = gc_z.get_mat_real(); - if ( transposed ) { - UTILS_ASSERT( - unsigned(ny) == z.numCols() && unsigned(nx) == z.numCols(), - "{}, field `z` expected to be of size {} x {}, found: {} x {}\n", - msg, ny, nx, z.numRows(), z.numCols() - ); - } else { - UTILS_ASSERT( - unsigned(nx) == z.numCols() && unsigned(ny) == z.numCols(), - "{}, field `z` expected to be of size {} x {}, found: {} x {}\n", - msg, nx, ny, z.numRows(), z.numCols() - ); - } - build( - &x.front(), 1, &y.front(), 1, z.data(), ldz, - nx, ny, fortran_storage, transposed + UTILS_ASSERT( + unsigned(N) == z.numRows() && unsigned(M) == z.numCols(), + "{}, field `z` expected to be of size {} x {}, found: {} x {}\n", + msg, N, M, z.numRows(), z.numCols() ); + load_Z( m_Z, LD, fortran_storage, transposed ); } else if ( GC_VEC_INTEGER == gc_z.get_type() || GC_VEC_LONG == gc_z.get_type() || GC_VEC_REAL == gc_z.get_type() ) { - vec_real_type z; - gc_z.copyto_vec_real( z, "SplineSurf::setup, field `z'" ); - integer nz = integer(z.size()); + + integer nz = gc_z.get_num_elements(); + integer nxy = m_nx * m_ny; UTILS_ASSERT( - nz == nx*ny, + nz == nxy, "{}, field `z` expected to be of size {} = {}x{}, found: `{}`\n", - msg, nx*ny, nx, ny, nz - ); - build( - &x.front(), 1, &y.front(), 1, &z.front(), ldz, - nx, ny, fortran_storage, transposed + msg, nxy, m_nx, m_ny, nz ); + for ( integer i = 0; i < nz ; ++i ) m_Z[size_t(i)] = gc_z.get_number_at(i); + load_Z( m_Z, LD, fortran_storage, transposed ); } else if ( GC_VECTOR == gc_z.get_type() ) { vector_type const & data = gc_z.get_vector(); - vec_real_type tmp, z; - z.resize( nx * ny ); - if ( fortran_storage ) { - UTILS_ASSERT( - size_t(nx) == data.size(), - "{}, field `zdata` (vector of vector) expected of size {} found of size {}\n", - msg, nx, data.size() - ); - for ( integer i = 0; i < nx; ++i ) { - GenericContainer const & col = data[size_t(i)]; - string msg1 = fmt::format( "{} reading column {}\n", msg, i ); - col.copyto_vec_real( tmp, msg1.c_str() ); - UTILS_ASSERT( - size_t(ny) == tmp.size(), - "{}, column {}-th of size {}, expected {}\n", - msg, i, tmp.size(), ny - ); - for ( integer j = 0; j < ny; ++j ) - z[size_t(ipos_C(i,j,ny))] = tmp[size_t(j)]; - } - } else { + vec_real_type tmp; + UTILS_ASSERT( + size_t(M) == data.size(), + "{}, field `zdata` (vector of vector) expected of size {} found of size {}\n", + msg, M, data.size() + ); + for ( integer j = 0; j < M; ++j ) { + GenericContainer const & row = data[size_t(j)]; + string msg1 = fmt::format( "{}, reading row {}\n", msg, j ); + row.copyto_vec_real( tmp, msg1.c_str() ); UTILS_ASSERT( - size_t(ny) == data.size(), - "{}, field `zdata` (vector of vector) expected of size {} found of size {}\n", - msg, ny, data.size() + size_t(N) == tmp.size(), + "{}, row {}-th of size {}, expected {}\n", + msg, j, tmp.size(), N ); - for ( integer j = 0; j < ny; ++j ) { - GenericContainer const & row = data[size_t(j)]; - string msg1 = fmt::format( "{} , reading row {}\n", msg, j ); - row.copyto_vec_real( tmp, msg1.c_str() ); - UTILS_ASSERT( - size_t(nx) == tmp.size(), - "{}, row {}-th of size {}, expected {}\n", - msg, j, tmp.size(), nx - ); - for ( integer i = 0; i < nx; ++i ) - z[size_t(ipos_C(i,j,ny))] = tmp[size_t(i)]; + if ( transposed ) { + for ( integer i = 0; i < N; ++i ) + m_Z[size_t(ipos_C(j,i))] = tmp[size_t(i)]; + } else { + for ( integer i = 0; i < N; ++i ) + m_Z[size_t(ipos_C(i,j))] = tmp[size_t(i)]; } } - build( - &x.front(), 1, &y.front(), 1, &z.front(), nx, - nx, ny, false, false - ); + load_Z( m_Z, m_ny, true, false ); } else { UTILS_ERROR( "{}, field `z` expected to be of type" @@ -666,13 +717,6 @@

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -715,7 +768,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -724,7 +777,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.html b/docs/api-cpp/program_listing_file_SplinesConfig.hh.html similarity index 79% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.html rename to docs/api-cpp/program_listing_file_SplinesConfig.hh.html index b0ae7854..64814e1b 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.html +++ b/docs/api-cpp/program_listing_file_SplinesConfig.hh.html @@ -7,16 +7,26 @@ - Program Listing for File SplinesConfig.hh — Splines documentation + Program Listing for File SplinesConfig.hh — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplinesConfig.hh +

    Program Listing for File SplinesConfig.hh

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesConfig.hh)

    +

    Return to documentation for file (SplinesConfig.hh)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -124,13 +134,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -173,7 +185,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -182,7 +194,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.html b/docs/api-cpp/program_listing_file_SplinesUtils.cc.html similarity index 98% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.html rename to docs/api-cpp/program_listing_file_SplinesUtils.cc.html index 39194f9c..a4022555 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.html +++ b/docs/api-cpp/program_listing_file_SplinesUtils.cc.html @@ -7,16 +7,26 @@ - Program Listing for File SplinesUtils.cc — Splines documentation + Program Listing for File SplinesUtils.cc — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplinesUtils.cc +

    Program Listing for File SplinesUtils.cc

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesUtils.cc)

    +

    Return to documentation for file (SplinesUtils.cc)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -611,13 +621,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -660,7 +672,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -669,7 +681,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.html b/docs/api-cpp/program_listing_file_SplinesUtils.hh.html similarity index 92% rename from docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.html rename to docs/api-cpp/program_listing_file_SplinesUtils.hh.html index 3c215bac..52984041 100644 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.html +++ b/docs/api-cpp/program_listing_file_SplinesUtils.hh.html @@ -7,16 +7,26 @@ - Program Listing for File SplinesUtils.hh — Splines documentation + Program Listing for File SplinesUtils.hh — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -63,9 +73,9 @@

    Navigation

    -

    Program Listing for File SplinesUtils.hh +

    Program Listing for File SplinesUtils.hh

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/SplinesUtils.hh)

    +

    Return to documentation for file (SplinesUtils.hh)

    /*--------------------------------------------------------------------------*\
      |                                                                          |
    @@ -355,13 +365,6 @@ 

    Navigation

    -
    -

    This Page

    - -
    +
    @@ -404,7 +416,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -413,7 +425,7 @@

    Navigation

    diff --git a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.html b/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.html deleted file mode 100644 index a6403436..00000000 --- a/docs/api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.html +++ /dev/null @@ -1,348 +0,0 @@ - - - - - - - - - - Program Listing for File Splines2D.cc — Splines documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    -
    -
    - -
    -

    Program Listing for File Splines2D.cc -

    -

    Return to documentation for file (/Users/enrico/Ricerca/develop/C++/pins-mechatronix/LibSources/submodules/Splines/src/Splines2D.cc)

    -
    -
    /*--------------------------------------------------------------------------*\
    - |                                                                          |
    - |  Copyright (C) 2016                                                      |
    - |                                                                          |
    - |         , __                 , __                                        |
    - |        /|/  \               /|/  \                                       |
    - |         | __/ _   ,_         | __/ _   ,_                                |
    - |         |   \|/  /  |  |   | |   \|/  /  |  |   |                        |
    - |         |(__/|__/   |_/ \_/|/|(__/|__/   |_/ \_/|/                       |
    - |                           /|                   /|                        |
    - |                           \|                   \|                        |
    - |                                                                          |
    - |      Enrico Bertolazzi                                                   |
    - |      Dipartimento di Ingegneria Industriale                              |
    - |      Universita` degli Studi di Trento                                   |
    - |      email: enrico.bertolazzi@unitn.it                                   |
    - |                                                                          |
    -\*--------------------------------------------------------------------------*/
    -
    -#include "Splines.hh"
    -
    -#ifdef __clang__
    -#pragma clang diagnostic ignored "-Wc++98-compat"
    -#pragma clang diagnostic ignored "-Wglobal-constructors"
    -#pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
    -#pragma clang diagnostic ignored "-Wpoison-system-directories"
    -#endif
    -
    -namespace Splines {
    -
    -  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -  void
    -  Spline2D::build(
    -    SplineType2D      tp,
    -    real_type const * x, integer incx,
    -    real_type const * y, integer incy,
    -    real_type const * z, integer ldZ,
    -    integer           nx,
    -    integer           ny,
    -    bool              fortran_storage,
    -    bool              transposed
    -  ) {
    -    switch ( tp ) {
    -    case BILINEAR_TYPE:
    -      static_cast<BilinearSpline*>(m_pSpline2D)->build(
    -        x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    case BICUBIC_TYPE:
    -      static_cast<BiCubicSpline*>(m_pSpline2D)->build(
    -        x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    case BIQUINTIC_TYPE:
    -      static_cast<BiQuinticSpline*>(m_pSpline2D)->build(
    -        x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    case AKIMA2D_TYPE:
    -      static_cast<Akima2Dspline*>(m_pSpline2D)->build(
    -        x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    }
    -  }
    -
    -  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -  void
    -  Spline2D::build(
    -    SplineType2D              tp,
    -    vector<real_type> const & x,
    -    vector<real_type> const & y,
    -    vector<real_type> const & z,
    -    bool                      fortran_storage,
    -    bool                      transposed
    -  ) {
    -    switch ( tp ) {
    -    case BILINEAR_TYPE:
    -      static_cast<BilinearSpline*>(m_pSpline2D)->build(
    -        x, y, z, fortran_storage, transposed
    -      );
    -      break;
    -    case BICUBIC_TYPE:
    -      static_cast<BiCubicSpline*>(m_pSpline2D)->build(
    -        x, y, z, fortran_storage, transposed
    -      );
    -      break;
    -    case BIQUINTIC_TYPE:
    -      static_cast<BiQuinticSpline*>(m_pSpline2D)->build(
    -        x, y, z, fortran_storage, transposed
    -      );
    -      break;
    -    case AKIMA2D_TYPE:
    -      static_cast<Akima2Dspline*>(m_pSpline2D)->build(
    -        x, y, z, fortran_storage, transposed
    -      );
    -      break;
    -    }
    -  }
    -
    -  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -  void
    -  Spline2D::build(
    -    SplineType2D      tp,
    -    real_type const * z,
    -    integer           ldZ,
    -    integer           nx,
    -    integer           ny,
    -    bool              fortran_storage,
    -    bool              transposed
    -  ) {
    -    switch ( tp ) {
    -    case BILINEAR_TYPE:
    -      static_cast<BilinearSpline*>(m_pSpline2D)->build(
    -        z, ldZ, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    case BICUBIC_TYPE:
    -      static_cast<BiCubicSpline*>(m_pSpline2D)->build(
    -        z, ldZ, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    case BIQUINTIC_TYPE:
    -      static_cast<BiQuinticSpline*>(m_pSpline2D)->build(
    -        z, ldZ, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    case AKIMA2D_TYPE:
    -      static_cast<Akima2Dspline*>(m_pSpline2D)->build(
    -        z, ldZ, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    }
    -  }
    -
    -  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -  void
    -  Spline2D::build(
    -    SplineType2D              tp,
    -    vector<real_type> const & z,
    -    integer                   nx,
    -    integer                   ny,
    -    bool fortran_storage,
    -    bool transposed
    -  ) {
    -    switch ( tp ) {
    -    case BILINEAR_TYPE:
    -      static_cast<BilinearSpline*>(m_pSpline2D)->build(
    -        z, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    case BICUBIC_TYPE:
    -      static_cast<BiCubicSpline*>(m_pSpline2D)->build(
    -        z, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    case BIQUINTIC_TYPE:
    -      static_cast<BiQuinticSpline*>(m_pSpline2D)->build(
    -        z, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    case AKIMA2D_TYPE:
    -      static_cast<Akima2Dspline*>(m_pSpline2D)->build(
    -        z, nx, ny, fortran_storage, transposed
    -      );
    -      break;
    -    }
    -  }
    -
    -  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -  void
    -  Spline2D::build( GenericContainer const & gc ) {
    -
    -    using GenericContainerNamespace::string_type;
    -
    -    string msg = fmt::format("Spline2D[{}]::setup( gc ):", m_name );
    -    UTILS_ASSERT(
    -      gc.exists("spline_type"), "{}, missing `spline_type` field!\n", msg
    -    );
    -
    -    string_type type = gc("spline_type").get_string();
    -
    -    if ( type == "bilinear" ) {
    -      static_cast<BilinearSpline*>(m_pSpline2D)->build( gc );
    -    } else if ( type == "bicubic" ) {
    -      static_cast<BiCubicSpline*>(m_pSpline2D)->build( gc );
    -    } else if ( type == "biquintic" ) {
    -      static_cast<BiQuinticSpline*>(m_pSpline2D)->build( gc );
    -    } else if ( type == "Akima" || type == "akima" ) {
    -      static_cast<Akima2Dspline*>(m_pSpline2D)->build( gc );
    -    } else {
    -      UTILS_ERROR( "{}, type `{}` unknown\n", msg, type );
    -    }
    -  }
    -
    -}
    -
    -
    -
    - - - -
    -
    -
    -
    - - - - - -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/api-cpp/root.html b/docs/api-cpp/root.html new file mode 100644 index 00000000..c227b5f0 --- /dev/null +++ b/docs/api-cpp/root.html @@ -0,0 +1,1069 @@ + + + + + + + + + + C++ API — Splines v1.0.9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    +
    +
    + +
    +

    C++ API +

    +
    +

    Class Hierarchy +

    + + +
    + +
    +

    Full API +

    +
    +

    Namespaces +

    + +
    +
    +

    Classes and Structs +

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    +
    + + + +
    +
    +
    +
    + + + + + +
    +
    +
    + + +
    + + + + + \ No newline at end of file diff --git a/docs/api-cpp/typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1.html b/docs/api-cpp/typedef_a00140_1a0b83d8865bf650fca7ad1d657245a8a1.html similarity index 61% rename from docs/api-cpp/typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1.html rename to docs/api-cpp/typedef_a00140_1a0b83d8865bf650fca7ad1d657245a8a1.html index ea1c4ec2..7cb6138d 100644 --- a/docs/api-cpp/typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1.html +++ b/docs/api-cpp/typedef_a00140_1a0b83d8865bf650fca7ad1d657245a8a1.html @@ -7,16 +7,26 @@ - Typedef Splines::integer — Splines documentation + Typedef Splines::integer — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Typedef Splines::integer +

    Typedef Splines::integer

    Typedef Documentation

    -typedef int Splines::integer
    +typedef int Splines::integer

    Signed integer type for splines.

    @@ -102,33 +112,7 @@

    Typedef Documentation -
    -

    Previous page

    -

    ← Define SPLINES_UTILS_HH

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-cpp/typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f.html b/docs/api-cpp/typedef_a00140_1a943d4ae4896c10228d57d004bd991e7f.html similarity index 60% rename from docs/api-cpp/typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f.html rename to docs/api-cpp/typedef_a00140_1a943d4ae4896c10228d57d004bd991e7f.html index 012f80dd..cc55a09d 100644 --- a/docs/api-cpp/typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f.html +++ b/docs/api-cpp/typedef_a00140_1a943d4ae4896c10228d57d004bd991e7f.html @@ -7,16 +7,26 @@ - Typedef Splines::ostream_type — Splines documentation + Typedef Splines::ostream_type — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Typedef Splines::ostream_type +

    Typedef Splines::ostream_type

    Typedef Documentation

    -typedef basic_ostream<char> Splines::ostream_type
    +typedef basic_ostream<char> Splines::ostream_type
    @@ -100,33 +110,7 @@

    Typedef Documentation -
    -

    Previous page

    -

    ← Typedef Splines::integer

    -
    - -
    -

    This Page

    - -
    +

    +

    @@ -170,14 +163,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -185,7 +178,7 @@

    Navigation

    diff --git a/docs/api-cpp/typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a.html b/docs/api-cpp/typedef_a00140_1afabb8610fb01952c2fcf1f17337bd44a.html similarity index 62% rename from docs/api-cpp/typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a.html rename to docs/api-cpp/typedef_a00140_1afabb8610fb01952c2fcf1f17337bd44a.html index 50b3e00d..954e9990 100644 --- a/docs/api-cpp/typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a.html +++ b/docs/api-cpp/typedef_a00140_1afabb8610fb01952c2fcf1f17337bd44a.html @@ -7,16 +7,26 @@ - Typedef Splines::real_type — Splines documentation + Typedef Splines::real_type — Splines v1.0.9 + + + + + + + + + + @@ -36,8 +46,8 @@ - - + +
    @@ -52,14 +62,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -72,17 +82,17 @@

    Navigation

    -

    Typedef Splines::real_type +

    Typedef Splines::real_type

    Typedef Documentation

    -typedef double Splines::real_type
    +typedef double Splines::real_type

    Floating point type for splines.

    @@ -102,33 +112,7 @@

    Typedef Documentation -
    -

    Previous page

    -

    ← Typedef Splines::ostream_type

    -
    -
    -

    Next page

    -

    → C API

    -
    -
    -

    This Page

    - -
    +

    +

    @@ -172,14 +165,14 @@

    Navigation

    toc    
  • - next    
  • - previous    
  • -
  • Splines documentation »
  • +
  • Splines »
  • - +
    @@ -187,7 +180,7 @@

    Navigation

    diff --git a/docs/api-cpp/unabridged_api.html b/docs/api-cpp/unabridged_api.html index 8e6f3c18..6b0bdbe4 100644 --- a/docs/api-cpp/unabridged_api.html +++ b/docs/api-cpp/unabridged_api.html @@ -7,16 +7,26 @@ - Full API — Splines documentation + Full API — Splines v1.0.9 + + + + + + + + + + @@ -49,7 +59,7 @@

    Navigation

  • toc    
  • -
  • Splines documentation »
  • +
  • Splines »
  • @@ -88,13 +98,13 @@

    Classes and Structs
    • -Class Akima2Dspline
        +Class Akima2Dspline @@ -102,13 +112,13 @@

        Classes and Structs
        • -Class AkimaSpline
            +Class AkimaSpline @@ -116,13 +126,13 @@

            Classes and Structs
            • -Class BesselSpline
                +Class BesselSpline @@ -130,13 +140,13 @@

                Classes and Structs
                • -Class BiCubicSpline
                    +Class BiCubicSpline @@ -144,14 +154,14 @@

                    Classes and Structs
                    • -Class BiCubicSplineBase
                        +Class BiCubicSplineBase @@ -159,13 +169,13 @@

                        Classes and Structs
                        • -Class BilinearSpline
                            +Class BilinearSpline @@ -173,13 +183,13 @@

                            Classes and Structs
                            • -Class BiQuinticSpline
                                +Class BiQuinticSpline @@ -187,14 +197,14 @@

                                Classes and Structs
                                • -Class BiQuinticSplineBase
                                    +Class BiQuinticSplineBase @@ -202,13 +212,13 @@

                                    Classes and Structs
                                    • -Class ConstantSpline
                                        +Class ConstantSpline @@ -216,13 +226,13 @@

                                        Classes and Structs
                                        • -Class CubicSpline
                                            +Class CubicSpline @@ -230,14 +240,14 @@

                                            Classes and Structs
                                            • -Class CubicSplineBase
                                                +Class CubicSplineBase @@ -245,13 +255,13 @@

                                                Classes and Structs
                                                • -Class HermiteSpline
                                                    +Class HermiteSpline @@ -259,13 +269,13 @@

                                                    Classes and Structs
                                                    • -Class LinearSpline
                                                        +Class LinearSpline @@ -273,13 +283,13 @@

                                                        Classes and Structs
                                                        • -Class PchipSpline
                                                            +Class PchipSpline @@ -287,13 +297,13 @@

                                                            Classes and Structs
                                                            • -Class QuinticSpline
                                                                +Class QuinticSpline @@ -301,14 +311,14 @@

                                                                Classes and Structs
                                                                • -Class QuinticSplineBase
                                                                    +Class QuinticSplineBase @@ -316,13 +326,13 @@

                                                                    Classes and Structs
                                                                    • -Class Spline
                                                                        +Class Spline @@ -330,8 +340,8 @@

                                                                        Classes and Structs
                                                                        • -Class Spline1D @@ -339,8 +349,8 @@

                                                                          Classes and Structs
                                                                          • -Class Spline2D @@ -348,13 +358,13 @@

                                                                            Classes and Structs
                                                                            • -Class SplineSet
                                                                                +Class SplineSet @@ -362,9 +372,9 @@

                                                                                Classes and Structs
                                                                                • -Class SplineSet::BinarySearch @@ -372,13 +382,13 @@

                                                                                  Classes and Structs
                                                                                  • -Class SplineSurf
                                                                                      +Class SplineSurf @@ -386,8 +396,8 @@

                                                                                      Classes and Structs
                                                                                      • -Class SplineVec @@ -399,8 +409,8 @@

                                                                                        Enums
                                                                                        • -Enum CUBIC_SPLINE_TYPE_BC @@ -408,8 +418,8 @@

                                                                                          Enums
                                                                                          @@ -65,33 +75,20 @@

                                                                                          Navigation

                                                                                          Full API

                                                                                          -
                                                                                          -

                                                                                          Directories -

                                                                                          -
                                                                                          - -
                                                                                          -

                                                                                          Files

                                                                                          • -File SplineAkima.cc
                                                                                              +File SplineAkima.cc @@ -99,15 +96,15 @@

                                                                                              Files
                                                                                              • -File SplineAkima.hxx
                                                                                                  +File SplineAkima.hxx @@ -115,14 +112,14 @@

                                                                                                  Files
                                                                                                  • -File SplineAkima2D.cc
                                                                                                      +File SplineAkima2D.cc @@ -130,15 +127,15 @@

                                                                                                      Files
                                                                                                      • -File SplineAkima2D.hxx
                                                                                                          +File SplineAkima2D.hxx @@ -146,14 +143,14 @@

                                                                                                          Files
                                                                                                          • -File SplineBessel.cc
                                                                                                              +File SplineBessel.cc @@ -161,15 +158,15 @@

                                                                                                              Files
                                                                                                              • -File SplineBessel.hxx
                                                                                                                  +File SplineBessel.hxx @@ -177,14 +174,14 @@

                                                                                                                  Files
                                                                                                                  • -File SplineBiCubic.cc
                                                                                                                      +File SplineBiCubic.cc @@ -192,15 +189,15 @@

                                                                                                                      Files
                                                                                                                      • -File SplineBiCubic.hxx
                                                                                                                          +File SplineBiCubic.hxx @@ -208,14 +205,14 @@

                                                                                                                          Files
                                                                                                                          • -File SplineBilinear.cc
                                                                                                                              +File SplineBilinear.cc @@ -223,15 +220,15 @@

                                                                                                                              Files
                                                                                                                              • -File SplineBilinear.hxx
                                                                                                                                  +File SplineBilinear.hxx @@ -239,14 +236,14 @@

                                                                                                                                  Files
                                                                                                                                  • -File SplineBiQuintic.cc
                                                                                                                                      +File SplineBiQuintic.cc @@ -254,15 +251,15 @@

                                                                                                                                      Files
                                                                                                                                      • -File SplineBiQuintic.hxx @@ -140,7 +159,7 @@

                                                                                                                                        Navigation

                                                                                                                                        diff --git a/docs/searchindex.js b/docs/searchindex.js index b86c5402..3a90a27f 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api-c/class_view_hierarchy","api-c/define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc","api-c/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src","api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc","api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h","api-c/file_view_hierarchy","api-c/function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19","api-c/function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660","api-c/function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0","api-c/function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27","api-c/function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390","api-c/function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4","api-c/function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709","api-c/function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70","api-c/function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f","api-c/function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a","api-c/function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e","api-c/function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97","api-c/function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a","api-c/function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132","api-c/function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8","api-c/function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df","api-c/library_root","api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc","api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h","api-c/unabridged_api","api-c/unabridged_orphan","api-cpp/class_splines_1_1_akima2_dspline","api-cpp/class_splines_1_1_akima_spline","api-cpp/class_splines_1_1_bessel_spline","api-cpp/class_splines_1_1_bi_cubic_spline","api-cpp/class_splines_1_1_bi_cubic_spline_base","api-cpp/class_splines_1_1_bi_quintic_spline","api-cpp/class_splines_1_1_bi_quintic_spline_base","api-cpp/class_splines_1_1_bilinear_spline","api-cpp/class_splines_1_1_constant_spline","api-cpp/class_splines_1_1_cubic_spline","api-cpp/class_splines_1_1_cubic_spline_base","api-cpp/class_splines_1_1_hermite_spline","api-cpp/class_splines_1_1_linear_spline","api-cpp/class_splines_1_1_pchip_spline","api-cpp/class_splines_1_1_quintic_spline","api-cpp/class_splines_1_1_quintic_spline_base","api-cpp/class_splines_1_1_spline","api-cpp/class_splines_1_1_spline1_d","api-cpp/class_splines_1_1_spline2_d","api-cpp/class_splines_1_1_spline_set","api-cpp/class_splines_1_1_spline_set_1_1_binary_search","api-cpp/class_splines_1_1_spline_surf","api-cpp/class_splines_1_1_spline_vec","api-cpp/class_view_hierarchy","api-cpp/define__splines_8hh_1a258c7c0530540979548721b55b2338c9","api-cpp/define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f","api-cpp/define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde","api-cpp/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src","api-cpp/enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe","api-cpp/enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed","api-cpp/enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7","api-cpp/enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb","api-cpp/enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh","api-cpp/file_view_hierarchy","api-cpp/function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca","api-cpp/function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9","api-cpp/function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016","api-cpp/function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02","api-cpp/function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00","api-cpp/function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549","api-cpp/function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04","api-cpp/function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7","api-cpp/function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f","api-cpp/function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41","api-cpp/function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2","api-cpp/function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2","api-cpp/function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e","api-cpp/function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4","api-cpp/function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03","api-cpp/function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c","api-cpp/function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2","api-cpp/function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d","api-cpp/library_root","api-cpp/namespace_Splines","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh","api-cpp/typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1","api-cpp/typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f","api-cpp/typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a","api-cpp/unabridged_api","api-cpp/unabridged_orphan","api-cpp/variable_namespace_splines_1a052166b362a237026fef2fff7e415070","api-matlab/class_base_hermite","api-matlab/class_spline1_d","api-matlab/class_spline2_d","api-matlab/class_spline_set","api-matlab/class_spline_vec","api-matlab/class_view_hierarchy","api-matlab/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox","api-matlab/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m","api-matlab/file_view_hierarchy","api-matlab/library_root","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m","api-matlab/unabridged_api","api-matlab/unabridged_orphan","index","readme"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["api-c/class_view_hierarchy.rst","api-c/define__splines_cinterface_8h_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.rst","api-c/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.rst","api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.rst","api-c/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.rst","api-c/file_view_hierarchy.rst","api-c/function__splines_cinterface_8h_1a42401ba59200b4447ddf50065bc54e19.rst","api-c/function__splines_cinterface_8h_1a4902f807d78a555e8439bb87a48e3660.rst","api-c/function__splines_cinterface_8h_1a562f6cae383a972ff70c7b987c17cce0.rst","api-c/function__splines_cinterface_8h_1a5781fa56546770ce18340a2b63b57b27.rst","api-c/function__splines_cinterface_8h_1a5eb493ea98ed5f24685c240c5bcfb390.rst","api-c/function__splines_cinterface_8h_1a60354e5e10bea276df88937a859e36a4.rst","api-c/function__splines_cinterface_8h_1a8cd7b632a4eb70a3464d02cb31c74709.rst","api-c/function__splines_cinterface_8h_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.rst","api-c/function__splines_cinterface_8h_1a9352cde120110961745d3cd48d67de8f.rst","api-c/function__splines_cinterface_8h_1a9b683ceadd58baaadaa58ca28268360a.rst","api-c/function__splines_cinterface_8h_1aa9a0988e747d636bd7a48b7dfb2b697e.rst","api-c/function__splines_cinterface_8h_1ab920995b11229ff331fcaaee2eeefc97.rst","api-c/function__splines_cinterface_8h_1aba9ab3ef53dc9452a0155168b80b499a.rst","api-c/function__splines_cinterface_8h_1ac15f1700b8ccf2d2e5266992cf38c132.rst","api-c/function__splines_cinterface_8h_1acdd57564fa775755a38daf483ffdf0e8.rst","api-c/function__splines_cinterface_8h_1af29f47a6ce8296c7fb0f4021b35997df.rst","api-c/library_root.rst","api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.cc.rst","api-c/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesCinterface.h.rst","api-c/unabridged_api.rst","api-c/unabridged_orphan.rst","api-cpp/class_splines_1_1_akima2_dspline.rst","api-cpp/class_splines_1_1_akima_spline.rst","api-cpp/class_splines_1_1_bessel_spline.rst","api-cpp/class_splines_1_1_bi_cubic_spline.rst","api-cpp/class_splines_1_1_bi_cubic_spline_base.rst","api-cpp/class_splines_1_1_bi_quintic_spline.rst","api-cpp/class_splines_1_1_bi_quintic_spline_base.rst","api-cpp/class_splines_1_1_bilinear_spline.rst","api-cpp/class_splines_1_1_constant_spline.rst","api-cpp/class_splines_1_1_cubic_spline.rst","api-cpp/class_splines_1_1_cubic_spline_base.rst","api-cpp/class_splines_1_1_hermite_spline.rst","api-cpp/class_splines_1_1_linear_spline.rst","api-cpp/class_splines_1_1_pchip_spline.rst","api-cpp/class_splines_1_1_quintic_spline.rst","api-cpp/class_splines_1_1_quintic_spline_base.rst","api-cpp/class_splines_1_1_spline.rst","api-cpp/class_splines_1_1_spline1_d.rst","api-cpp/class_splines_1_1_spline2_d.rst","api-cpp/class_splines_1_1_spline_set.rst","api-cpp/class_splines_1_1_spline_set_1_1_binary_search.rst","api-cpp/class_splines_1_1_spline_surf.rst","api-cpp/class_splines_1_1_spline_vec.rst","api-cpp/class_view_hierarchy.rst","api-cpp/define__splines_8hh_1a258c7c0530540979548721b55b2338c9.rst","api-cpp/define__splines_config_8hh_1a7dc7bbba00bb80a0e5d5c7c94497a07f.rst","api-cpp/define__splines_utils_8hh_1a7d5567c4bd7d1851b7456989e413ccde.rst","api-cpp/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src.rst","api-cpp/enum_namespace_splines_1a1678db4e652dc21a5a18803b3847eabe.rst","api-cpp/enum_namespace_splines_1a96aa14ec624ad77d84a7e5afa435c1ed.rst","api-cpp/enum_namespace_splines_1aa6410df8c515cad4d238820f523fead7.rst","api-cpp/enum_namespace_splines_1afc8c082d2849822ca15bdf52cb4409fb.rst","api-cpp/enum_namespace_splines_1afebc3f20f002ddfdcbd2d725d1aa55df.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.rst","api-cpp/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.rst","api-cpp/file_view_hierarchy.rst","api-cpp/function_namespace_splines_1a22872cf871ce7a12ecda3a1f8d8e6cca.rst","api-cpp/function_namespace_splines_1a228f7065a249b0c10a9886fdc85f05f9.rst","api-cpp/function_namespace_splines_1a4a9fd3c1d8de964d95d730668e6b6016.rst","api-cpp/function_namespace_splines_1a4fe6464c49b4bba331d9751598a44f02.rst","api-cpp/function_namespace_splines_1a62d87177bbdb8da9a92701e528c57f00.rst","api-cpp/function_namespace_splines_1a64d0e892133ce06e0a3577c3bea0f549.rst","api-cpp/function_namespace_splines_1a8c7e2a599a7e341f0d8751b1bccb9a04.rst","api-cpp/function_namespace_splines_1a91c8806be0fd7584311f74dffe3ae3f7.rst","api-cpp/function_namespace_splines_1a9437a6461e2735153715bb43bc7d734f.rst","api-cpp/function_namespace_splines_1a94d2862da920a586358451ce3b3bcb41.rst","api-cpp/function_namespace_splines_1ac18823b95eb83fa935ba4d33eb4e75a2.rst","api-cpp/function_namespace_splines_1ac5930dd87f51e2577e79a2bdd746c6b2.rst","api-cpp/function_namespace_splines_1ad1cb03ee7c6c9f13f93df88d7612e26e.rst","api-cpp/function_namespace_splines_1ae61f54b18ac4089ead89302e4b99fee4.rst","api-cpp/function_namespace_splines_1aeb6c86ca718705bd71ad29b32c3f6d03.rst","api-cpp/function_namespace_splines_1aeea9f9f28b21dbf93715fd27a7c7106c.rst","api-cpp/function_namespace_splines_1aef9996b8a86809bcb1609ed9bab5cea2.rst","api-cpp/function_namespace_splines_1afb1c7d06a034be8c501f91321a50af3d.rst","api-cpp/library_root.rst","api-cpp/namespace_Splines.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineAkima2D.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBessel.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiCubic.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBiQuintic.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineBilinear.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineConstant.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubic.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineCubicBase.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineHermite.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineLinear.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinePchip.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuintic.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineQuinticBase.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSet.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineSetGC.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplineVec.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines.hh.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines1D.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_Splines2D.hxx.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesBivariate.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesConfig.hh.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.cc.rst","api-cpp/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_src_SplinesUtils.hh.rst","api-cpp/typedef_namespace_splines_1a0b83d8865bf650fca7ad1d657245a8a1.rst","api-cpp/typedef_namespace_splines_1a943d4ae4896c10228d57d004bd991e7f.rst","api-cpp/typedef_namespace_splines_1afabb8610fb01952c2fcf1f17337bd44a.rst","api-cpp/unabridged_api.rst","api-cpp/unabridged_orphan.rst","api-cpp/variable_namespace_splines_1a052166b362a237026fef2fff7e415070.rst","api-matlab/class_base_hermite.rst","api-matlab/class_spline1_d.rst","api-matlab/class_spline2_d.rst","api-matlab/class_spline_set.rst","api-matlab/class_spline_vec.rst","api-matlab/class_view_hierarchy.rst","api-matlab/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox.rst","api-matlab/dir__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib.rst","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m.rst","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m.rst","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m.rst","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m.rst","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m.rst","api-matlab/file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m.rst","api-matlab/file_view_hierarchy.rst","api-matlab/library_root.rst","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_BaseHermite.m.rst","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_CompileSplinesLib.m.rst","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline1D.m.rst","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_Spline2D.m.rst","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineSet.m.rst","api-matlab/program_listing_file__Users_enrico_Ricerca_develop_C++_pins-mechatronix_LibSources_submodules_Splines_toolbox_lib_SplineVec.m.rst","api-matlab/unabridged_api.rst","api-matlab/unabridged_orphan.rst","index.rst","readme.rst"],objects:{"":{"BaseHermite::BaseHermite":[171,2,1,"_CPPv4N11BaseHermite11BaseHermiteEv"],"BaseHermite::L2_first_derivative":[171,2,1,"_CPPv4N11BaseHermite19L2_first_derivativeE2in"],"BaseHermite::L2_first_derivative::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite19L2_first_derivativeE2in"],"BaseHermite::L2_second_derivative":[171,2,1,"_CPPv4N11BaseHermite20L2_second_derivativeE2in"],"BaseHermite::L2_second_derivative::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite20L2_second_derivativeE2in"],"BaseHermite::L2_third_derivative":[171,2,1,"_CPPv4N11BaseHermite19L2_third_derivativeE2in"],"BaseHermite::L2_third_derivative::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite19L2_third_derivativeE2in"],"BaseHermite::approximate_length":[171,2,1,"_CPPv4N11BaseHermite18approximate_lengthE2in2in"],"BaseHermite::approximate_length::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite18approximate_lengthE2in2in"],"BaseHermite::approximate_length::varargin":[171,3,1,"_CPPv4N11BaseHermite18approximate_lengthE2in2in"],"BaseHermite::base":[171,2,1,"_CPPv4N11BaseHermite4baseE2in2in"],"BaseHermite::base5":[171,2,1,"_CPPv4N11BaseHermite5base5E2in2in"],"BaseHermite::base5::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite5base5E2in2in"],"BaseHermite::base5::varargin":[171,3,1,"_CPPv4N11BaseHermite5base5E2in2in"],"BaseHermite::base5_D":[171,2,1,"_CPPv4N11BaseHermite7base5_DE2in2in"],"BaseHermite::base5_D::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite7base5_DE2in2in"],"BaseHermite::base5_D::varargin":[171,3,1,"_CPPv4N11BaseHermite7base5_DE2in2in"],"BaseHermite::base5_DD":[171,2,1,"_CPPv4N11BaseHermite8base5_DDE2in2in"],"BaseHermite::base5_DD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite8base5_DDE2in2in"],"BaseHermite::base5_DD::varargin":[171,3,1,"_CPPv4N11BaseHermite8base5_DDE2in2in"],"BaseHermite::base5_DDD":[171,2,1,"_CPPv4N11BaseHermite9base5_DDDE2in2in"],"BaseHermite::base5_DDD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite9base5_DDDE2in2in"],"BaseHermite::base5_DDD::varargin":[171,3,1,"_CPPv4N11BaseHermite9base5_DDDE2in2in"],"BaseHermite::base5_DDDD":[171,2,1,"_CPPv4N11BaseHermite10base5_DDDDE2in2in"],"BaseHermite::base5_DDDD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite10base5_DDDDE2in2in"],"BaseHermite::base5_DDDD::varargin":[171,3,1,"_CPPv4N11BaseHermite10base5_DDDDE2in2in"],"BaseHermite::base5_DDDDD":[171,2,1,"_CPPv4N11BaseHermite11base5_DDDDDE2in2in"],"BaseHermite::base5_DDDDD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite11base5_DDDDDE2in2in"],"BaseHermite::base5_DDDDD::varargin":[171,3,1,"_CPPv4N11BaseHermite11base5_DDDDDE2in2in"],"BaseHermite::base::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite4baseE2in2in"],"BaseHermite::base::varargin":[171,3,1,"_CPPv4N11BaseHermite4baseE2in2in"],"BaseHermite::base_D":[171,2,1,"_CPPv4N11BaseHermite6base_DE2in2in"],"BaseHermite::base_D::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite6base_DE2in2in"],"BaseHermite::base_D::varargin":[171,3,1,"_CPPv4N11BaseHermite6base_DE2in2in"],"BaseHermite::base_DD":[171,2,1,"_CPPv4N11BaseHermite7base_DDE2in2in"],"BaseHermite::base_DD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite7base_DDE2in2in"],"BaseHermite::base_DD::varargin":[171,3,1,"_CPPv4N11BaseHermite7base_DDE2in2in"],"BaseHermite::base_DDD":[171,2,1,"_CPPv4N11BaseHermite8base_DDDE2in2in"],"BaseHermite::base_DDD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite8base_DDDE2in2in"],"BaseHermite::base_DDD::varargin":[171,3,1,"_CPPv4N11BaseHermite8base_DDDE2in2in"],"BaseHermite::bezier_to_hermite":[171,2,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::bezier_to_hermite::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::bezier_to_hermite::p0":[171,3,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::bezier_to_hermite::p1":[171,3,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::bezier_to_hermite::p2":[171,3,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::bezier_to_hermite::p3":[171,3,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::cut":[171,2,1,"_CPPv4N11BaseHermite3cutE2in2in"],"BaseHermite::cut::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite3cutE2in2in"],"BaseHermite::cut::varargin":[171,3,1,"_CPPv4N11BaseHermite3cutE2in2in"],"BaseHermite::eval":[171,2,1,"_CPPv4N11BaseHermite4evalE2in2in"],"BaseHermite::eval5":[171,2,1,"_CPPv4N11BaseHermite5eval5E2in2in"],"BaseHermite::eval5::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite5eval5E2in2in"],"BaseHermite::eval5::varargin":[171,3,1,"_CPPv4N11BaseHermite5eval5E2in2in"],"BaseHermite::eval5_D":[171,2,1,"_CPPv4N11BaseHermite7eval5_DE2in2in"],"BaseHermite::eval5_D::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite7eval5_DE2in2in"],"BaseHermite::eval5_D::varargin":[171,3,1,"_CPPv4N11BaseHermite7eval5_DE2in2in"],"BaseHermite::eval5_DD":[171,2,1,"_CPPv4N11BaseHermite8eval5_DDE2in2in"],"BaseHermite::eval5_DD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite8eval5_DDE2in2in"],"BaseHermite::eval5_DD::varargin":[171,3,1,"_CPPv4N11BaseHermite8eval5_DDE2in2in"],"BaseHermite::eval5_DDD":[171,2,1,"_CPPv4N11BaseHermite9eval5_DDDE2in2in"],"BaseHermite::eval5_DDD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite9eval5_DDDE2in2in"],"BaseHermite::eval5_DDD::varargin":[171,3,1,"_CPPv4N11BaseHermite9eval5_DDDE2in2in"],"BaseHermite::eval5_DDDD":[171,2,1,"_CPPv4N11BaseHermite10eval5_DDDDE2in2in"],"BaseHermite::eval5_DDDD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite10eval5_DDDDE2in2in"],"BaseHermite::eval5_DDDD::varargin":[171,3,1,"_CPPv4N11BaseHermite10eval5_DDDDE2in2in"],"BaseHermite::eval5_DDDDD":[171,2,1,"_CPPv4N11BaseHermite11eval5_DDDDDE2in2in"],"BaseHermite::eval5_DDDDD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite11eval5_DDDDDE2in2in"],"BaseHermite::eval5_DDDDD::varargin":[171,3,1,"_CPPv4N11BaseHermite11eval5_DDDDDE2in2in"],"BaseHermite::eval::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite4evalE2in2in"],"BaseHermite::eval::varargin":[171,3,1,"_CPPv4N11BaseHermite4evalE2in2in"],"BaseHermite::eval_D":[171,2,1,"_CPPv4N11BaseHermite6eval_DE2in2in"],"BaseHermite::eval_D::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite6eval_DE2in2in"],"BaseHermite::eval_D::varargin":[171,3,1,"_CPPv4N11BaseHermite6eval_DE2in2in"],"BaseHermite::eval_DD":[171,2,1,"_CPPv4N11BaseHermite7eval_DDE2in2in"],"BaseHermite::eval_DD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite7eval_DDE2in2in"],"BaseHermite::eval_DD::varargin":[171,3,1,"_CPPv4N11BaseHermite7eval_DDE2in2in"],"BaseHermite::eval_DDD":[171,2,1,"_CPPv4N11BaseHermite8eval_DDDE2in2in"],"BaseHermite::eval_DDD::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite8eval_DDDE2in2in"],"BaseHermite::eval_DDD::varargin":[171,3,1,"_CPPv4N11BaseHermite8eval_DDDE2in2in"],"BaseHermite::hermite_to_bezier":[171,2,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"BaseHermite::hermite_to_bezier::ignoredArg":[171,3,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"BaseHermite::hermite_to_bezier::p0":[171,3,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"BaseHermite::hermite_to_bezier::p1":[171,3,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"BaseHermite::hermite_to_bezier::t0":[171,3,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"BaseHermite::hermite_to_bezier::t1":[171,3,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"SPLINE_build2::n":[7,3,1,"_CPPv413SPLINE_build2PKdPKdi"],"SPLINE_build2::x":[7,3,1,"_CPPv413SPLINE_build2PKdPKdi"],"SPLINE_build2::y":[7,3,1,"_CPPv413SPLINE_build2PKdPKdi"],"SPLINE_delete::id":[21,3,1,"_CPPv413SPLINE_deletePKc"],"SPLINE_eval::x":[11,3,1,"_CPPv411SPLINE_evald"],"SPLINE_eval_D::x":[10,3,1,"_CPPv413SPLINE_eval_Dd"],"SPLINE_eval_DD::x":[16,3,1,"_CPPv414SPLINE_eval_DDd"],"SPLINE_eval_DDD::x":[14,3,1,"_CPPv415SPLINE_eval_DDDd"],"SPLINE_eval_DDDD::x":[13,3,1,"_CPPv416SPLINE_eval_DDDDd"],"SPLINE_eval_DDDDD::x":[19,3,1,"_CPPv417SPLINE_eval_DDDDDd"],"SPLINE_mem_ptr::id":[17,3,1,"_CPPv414SPLINE_mem_ptrPKc"],"SPLINE_new::id":[20,3,1,"_CPPv410SPLINE_newPKcPKc"],"SPLINE_new::type":[20,3,1,"_CPPv410SPLINE_newPKcPKc"],"SPLINE_push::x":[6,3,1,"_CPPv411SPLINE_pushdd"],"SPLINE_push::y":[6,3,1,"_CPPv411SPLINE_pushdd"],"SPLINE_select::id":[9,3,1,"_CPPv413SPLINE_selectPKc"],"Spline1D::Spline1D":[172,2,1,"_CPPv4N8Spline1D8Spline1DE2in2in"],"Spline1D::Spline1D::kind":[172,3,1,"_CPPv4N8Spline1D8Spline1DE2in2in"],"Spline1D::Spline1D::varargin":[172,3,1,"_CPPv4N8Spline1D8Spline1DE2in2in"],"Spline1D::build":[172,2,1,"_CPPv4N8Spline1D5buildE2in2in"],"Spline1D::build::self":[172,3,1,"_CPPv4N8Spline1D5buildE2in2in"],"Spline1D::build::varargin":[172,3,1,"_CPPv4N8Spline1D5buildE2in2in"],"Spline1D::eval":[172,2,1,"_CPPv4N8Spline1D4evalE2in2in"],"Spline1D::eval::self":[172,3,1,"_CPPv4N8Spline1D4evalE2in2in"],"Spline1D::eval::x":[172,3,1,"_CPPv4N8Spline1D4evalE2in2in"],"Spline1D::eval_D":[172,2,1,"_CPPv4N8Spline1D6eval_DE2in2in"],"Spline1D::eval_D::self":[172,3,1,"_CPPv4N8Spline1D6eval_DE2in2in"],"Spline1D::eval_D::x":[172,3,1,"_CPPv4N8Spline1D6eval_DE2in2in"],"Spline1D::eval_DD":[172,2,1,"_CPPv4N8Spline1D7eval_DDE2in2in"],"Spline1D::eval_DD::self":[172,3,1,"_CPPv4N8Spline1D7eval_DDE2in2in"],"Spline1D::eval_DD::x":[172,3,1,"_CPPv4N8Spline1D7eval_DDE2in2in"],"Spline1D::eval_DDD":[172,2,1,"_CPPv4N8Spline1D8eval_DDDE2in2in"],"Spline1D::eval_DDD::self":[172,3,1,"_CPPv4N8Spline1D8eval_DDDE2in2in"],"Spline1D::eval_DDD::x":[172,3,1,"_CPPv4N8Spline1D8eval_DDDE2in2in"],"Spline1D::eval_DDDD":[172,2,1,"_CPPv4N8Spline1D9eval_DDDDE2in2in"],"Spline1D::eval_DDDD::self":[172,3,1,"_CPPv4N8Spline1D9eval_DDDDE2in2in"],"Spline1D::eval_DDDD::x":[172,3,1,"_CPPv4N8Spline1D9eval_DDDDE2in2in"],"Spline1D::eval_DDDDD":[172,2,1,"_CPPv4N8Spline1D10eval_DDDDDE2in2in"],"Spline1D::eval_DDDDD::self":[172,3,1,"_CPPv4N8Spline1D10eval_DDDDDE2in2in"],"Spline1D::eval_DDDDD::x":[172,3,1,"_CPPv4N8Spline1D10eval_DDDDDE2in2in"],"Spline1D::is_bounded":[172,2,1,"_CPPv4N8Spline1D10is_boundedE2in"],"Spline1D::is_bounded::self":[172,3,1,"_CPPv4N8Spline1D10is_boundedE2in"],"Spline1D::is_closed":[172,2,1,"_CPPv4N8Spline1D9is_closedE2in"],"Spline1D::is_closed::self":[172,3,1,"_CPPv4N8Spline1D9is_closedE2in"],"Spline1D::is_extended_constant":[172,2,1,"_CPPv4N8Spline1D20is_extended_constantE2in"],"Spline1D::is_extended_constant::self":[172,3,1,"_CPPv4N8Spline1D20is_extended_constantE2in"],"Spline1D::make_bounded":[172,2,1,"_CPPv4N8Spline1D12make_boundedE2in"],"Spline1D::make_bounded::self":[172,3,1,"_CPPv4N8Spline1D12make_boundedE2in"],"Spline1D::make_closed":[172,2,1,"_CPPv4N8Spline1D11make_closedE2in"],"Spline1D::make_closed::self":[172,3,1,"_CPPv4N8Spline1D11make_closedE2in"],"Spline1D::make_extended_constant":[172,2,1,"_CPPv4N8Spline1D22make_extended_constantE2in"],"Spline1D::make_extended_constant::self":[172,3,1,"_CPPv4N8Spline1D22make_extended_constantE2in"],"Spline1D::make_extended_not_constant":[172,2,1,"_CPPv4N8Spline1D26make_extended_not_constantE2in"],"Spline1D::make_extended_not_constant::self":[172,3,1,"_CPPv4N8Spline1D26make_extended_not_constantE2in"],"Spline1D::make_opened":[172,2,1,"_CPPv4N8Spline1D11make_openedE2in"],"Spline1D::make_opened::self":[172,3,1,"_CPPv4N8Spline1D11make_openedE2in"],"Spline1D::make_unbounded":[172,2,1,"_CPPv4N8Spline1D14make_unboundedE2in"],"Spline1D::make_unbounded::self":[172,3,1,"_CPPv4N8Spline1D14make_unboundedE2in"],"Spline1D::xBegin":[172,2,1,"_CPPv4N8Spline1D6xBeginE2in"],"Spline1D::xBegin::self":[172,3,1,"_CPPv4N8Spline1D6xBeginE2in"],"Spline1D::xEnd":[172,2,1,"_CPPv4N8Spline1D4xEndE2in"],"Spline1D::xEnd::self":[172,3,1,"_CPPv4N8Spline1D4xEndE2in"],"Spline1D::xMax":[172,2,1,"_CPPv4N8Spline1D4xMaxE2in"],"Spline1D::xMax::self":[172,3,1,"_CPPv4N8Spline1D4xMaxE2in"],"Spline1D::xMin":[172,2,1,"_CPPv4N8Spline1D4xMinE2in"],"Spline1D::xMin::self":[172,3,1,"_CPPv4N8Spline1D4xMinE2in"],"Spline1D::yBegin":[172,2,1,"_CPPv4N8Spline1D6yBeginE2in"],"Spline1D::yBegin::self":[172,3,1,"_CPPv4N8Spline1D6yBeginE2in"],"Spline1D::yEnd":[172,2,1,"_CPPv4N8Spline1D4yEndE2in"],"Spline1D::yEnd::self":[172,3,1,"_CPPv4N8Spline1D4yEndE2in"],"Spline1D::yMax":[172,2,1,"_CPPv4N8Spline1D4yMaxE2in"],"Spline1D::yMax::self":[172,3,1,"_CPPv4N8Spline1D4yMaxE2in"],"Spline1D::yMin":[172,2,1,"_CPPv4N8Spline1D4yMinE2in"],"Spline1D::yMin::self":[172,3,1,"_CPPv4N8Spline1D4yMinE2in"],"Spline2D::Spline2D":[173,2,1,"_CPPv4N8Spline2D8Spline2DE2in2in"],"Spline2D::Spline2D::name":[173,3,1,"_CPPv4N8Spline2D8Spline2DE2in2in"],"Spline2D::Spline2D::varargin":[173,3,1,"_CPPv4N8Spline2D8Spline2DE2in2in"],"Spline2D::build":[173,2,1,"_CPPv4N8Spline2D5buildE2in2in2in2in"],"Spline2D::build::self":[173,3,1,"_CPPv4N8Spline2D5buildE2in2in2in2in"],"Spline2D::build::x":[173,3,1,"_CPPv4N8Spline2D5buildE2in2in2in2in"],"Spline2D::build::y":[173,3,1,"_CPPv4N8Spline2D5buildE2in2in2in2in"],"Spline2D::build::z":[173,3,1,"_CPPv4N8Spline2D5buildE2in2in2in2in"],"Spline2D::eval":[173,2,1,"_CPPv4N8Spline2D4evalE2in2in2in"],"Spline2D::eval::self":[173,3,1,"_CPPv4N8Spline2D4evalE2in2in2in"],"Spline2D::eval::x":[173,3,1,"_CPPv4N8Spline2D4evalE2in2in2in"],"Spline2D::eval::y":[173,3,1,"_CPPv4N8Spline2D4evalE2in2in2in"],"Spline2D::eval_Dx":[173,2,1,"_CPPv4N8Spline2D7eval_DxE2in2in2in"],"Spline2D::eval_Dx::self":[173,3,1,"_CPPv4N8Spline2D7eval_DxE2in2in2in"],"Spline2D::eval_Dx::x":[173,3,1,"_CPPv4N8Spline2D7eval_DxE2in2in2in"],"Spline2D::eval_Dx::y":[173,3,1,"_CPPv4N8Spline2D7eval_DxE2in2in2in"],"Spline2D::eval_Dxx":[173,2,1,"_CPPv4N8Spline2D8eval_DxxE2in2in2in"],"Spline2D::eval_Dxx::self":[173,3,1,"_CPPv4N8Spline2D8eval_DxxE2in2in2in"],"Spline2D::eval_Dxx::x":[173,3,1,"_CPPv4N8Spline2D8eval_DxxE2in2in2in"],"Spline2D::eval_Dxx::y":[173,3,1,"_CPPv4N8Spline2D8eval_DxxE2in2in2in"],"Spline2D::eval_Dxy":[173,2,1,"_CPPv4N8Spline2D8eval_DxyE2in2in2in"],"Spline2D::eval_Dxy::self":[173,3,1,"_CPPv4N8Spline2D8eval_DxyE2in2in2in"],"Spline2D::eval_Dxy::x":[173,3,1,"_CPPv4N8Spline2D8eval_DxyE2in2in2in"],"Spline2D::eval_Dxy::y":[173,3,1,"_CPPv4N8Spline2D8eval_DxyE2in2in2in"],"Spline2D::eval_Dy":[173,2,1,"_CPPv4N8Spline2D7eval_DyE2in2in2in"],"Spline2D::eval_Dy::self":[173,3,1,"_CPPv4N8Spline2D7eval_DyE2in2in2in"],"Spline2D::eval_Dy::x":[173,3,1,"_CPPv4N8Spline2D7eval_DyE2in2in2in"],"Spline2D::eval_Dy::y":[173,3,1,"_CPPv4N8Spline2D7eval_DyE2in2in2in"],"Spline2D::eval_Dyy":[173,2,1,"_CPPv4N8Spline2D8eval_DyyE2in2in2in"],"Spline2D::eval_Dyy::self":[173,3,1,"_CPPv4N8Spline2D8eval_DyyE2in2in2in"],"Spline2D::eval_Dyy::x":[173,3,1,"_CPPv4N8Spline2D8eval_DyyE2in2in2in"],"Spline2D::eval_Dyy::y":[173,3,1,"_CPPv4N8Spline2D8eval_DyyE2in2in2in"],"Spline2D::is_x_bounded":[173,2,1,"_CPPv4N8Spline2D12is_x_boundedE2in"],"Spline2D::is_x_bounded::self":[173,3,1,"_CPPv4N8Spline2D12is_x_boundedE2in"],"Spline2D::is_x_closed":[173,2,1,"_CPPv4N8Spline2D11is_x_closedE2in"],"Spline2D::is_x_closed::self":[173,3,1,"_CPPv4N8Spline2D11is_x_closedE2in"],"Spline2D::is_y_bounded":[173,2,1,"_CPPv4N8Spline2D12is_y_boundedE2in"],"Spline2D::is_y_bounded::self":[173,3,1,"_CPPv4N8Spline2D12is_y_boundedE2in"],"Spline2D::is_y_closed":[173,2,1,"_CPPv4N8Spline2D11is_y_closedE2in"],"Spline2D::is_y_closed::self":[173,3,1,"_CPPv4N8Spline2D11is_y_closedE2in"],"Spline2D::make_x_bounded":[173,2,1,"_CPPv4N8Spline2D14make_x_boundedE2in"],"Spline2D::make_x_bounded::self":[173,3,1,"_CPPv4N8Spline2D14make_x_boundedE2in"],"Spline2D::make_x_closed":[173,2,1,"_CPPv4N8Spline2D13make_x_closedE2in"],"Spline2D::make_x_closed::self":[173,3,1,"_CPPv4N8Spline2D13make_x_closedE2in"],"Spline2D::make_x_opened":[173,2,1,"_CPPv4N8Spline2D13make_x_openedE2in"],"Spline2D::make_x_opened::self":[173,3,1,"_CPPv4N8Spline2D13make_x_openedE2in"],"Spline2D::make_x_unbounded":[173,2,1,"_CPPv4N8Spline2D16make_x_unboundedE2in"],"Spline2D::make_x_unbounded::self":[173,3,1,"_CPPv4N8Spline2D16make_x_unboundedE2in"],"Spline2D::make_y_bounded":[173,2,1,"_CPPv4N8Spline2D14make_y_boundedE2in"],"Spline2D::make_y_bounded::self":[173,3,1,"_CPPv4N8Spline2D14make_y_boundedE2in"],"Spline2D::make_y_closed":[173,2,1,"_CPPv4N8Spline2D13make_y_closedE2in"],"Spline2D::make_y_closed::self":[173,3,1,"_CPPv4N8Spline2D13make_y_closedE2in"],"Spline2D::make_y_opened":[173,2,1,"_CPPv4N8Spline2D13make_y_openedE2in"],"Spline2D::make_y_opened::self":[173,3,1,"_CPPv4N8Spline2D13make_y_openedE2in"],"Spline2D::make_y_unbounded":[173,2,1,"_CPPv4N8Spline2D16make_y_unboundedE2in"],"Spline2D::make_y_unbounded::self":[173,3,1,"_CPPv4N8Spline2D16make_y_unboundedE2in"],"SplineSet::SplineSet":[174,2,1,"_CPPv4N9SplineSet9SplineSetE2in"],"SplineSet::SplineSet::varargin":[174,3,1,"_CPPv4N9SplineSet9SplineSetE2in"],"SplineSet::build":[174,2,1,"_CPPv4N9SplineSet5buildE2in2in2in2in"],"SplineSet::build::kinds":[174,3,1,"_CPPv4N9SplineSet5buildE2in2in2in2in"],"SplineSet::build::self":[174,3,1,"_CPPv4N9SplineSet5buildE2in2in2in2in"],"SplineSet::build::x":[174,3,1,"_CPPv4N9SplineSet5buildE2in2in2in2in"],"SplineSet::build::y":[174,3,1,"_CPPv4N9SplineSet5buildE2in2in2in2in"],"SplineSet::eval":[174,2,1,"_CPPv4N9SplineSet4evalE2in2in"],"SplineSet::eval::self":[174,3,1,"_CPPv4N9SplineSet4evalE2in2in"],"SplineSet::eval::x":[174,3,1,"_CPPv4N9SplineSet4evalE2in2in"],"SplineSet::eval_D":[174,2,1,"_CPPv4N9SplineSet6eval_DE2in2in"],"SplineSet::eval_D::self":[174,3,1,"_CPPv4N9SplineSet6eval_DE2in2in"],"SplineSet::eval_D::x":[174,3,1,"_CPPv4N9SplineSet6eval_DE2in2in"],"SplineSet::eval_DD":[174,2,1,"_CPPv4N9SplineSet7eval_DDE2in2in"],"SplineSet::eval_DD::self":[174,3,1,"_CPPv4N9SplineSet7eval_DDE2in2in"],"SplineSet::eval_DD::x":[174,3,1,"_CPPv4N9SplineSet7eval_DDE2in2in"],"SplineSet::eval_DDD":[174,2,1,"_CPPv4N9SplineSet8eval_DDDE2in2in"],"SplineSet::eval_DDD::self":[174,3,1,"_CPPv4N9SplineSet8eval_DDDE2in2in"],"SplineSet::eval_DDD::x":[174,3,1,"_CPPv4N9SplineSet8eval_DDDE2in2in"],"SplineSet::tmax":[174,2,1,"_CPPv4N9SplineSet4tmaxE2in2in"],"SplineSet::tmax::self":[174,3,1,"_CPPv4N9SplineSet4tmaxE2in2in"],"SplineSet::tmax::x":[174,3,1,"_CPPv4N9SplineSet4tmaxE2in2in"],"SplineSet::tmin":[174,2,1,"_CPPv4N9SplineSet4tminE2in2in"],"SplineSet::tmin::self":[174,3,1,"_CPPv4N9SplineSet4tminE2in2in"],"SplineSet::tmin::x":[174,3,1,"_CPPv4N9SplineSet4tminE2in2in"],"SplineVec::CatmullRom":[175,2,1,"_CPPv4N9SplineVec10CatmullRomE2in"],"SplineVec::CatmullRom::self":[175,3,1,"_CPPv4N9SplineVec10CatmullRomE2in"],"SplineVec::SplineVec":[175,2,1,"_CPPv4N9SplineVec9SplineVecEv"],"SplineVec::centripetal":[175,2,1,"_CPPv4N9SplineVec11centripetalE2in"],"SplineVec::centripetal::self":[175,3,1,"_CPPv4N9SplineVec11centripetalE2in"],"SplineVec::chord":[175,2,1,"_CPPv4N9SplineVec5chordE2in"],"SplineVec::chord::self":[175,3,1,"_CPPv4N9SplineVec5chordE2in"],"SplineVec::curvature":[175,2,1,"_CPPv4N9SplineVec9curvatureE2in2in"],"SplineVec::curvature::self":[175,3,1,"_CPPv4N9SplineVec9curvatureE2in2in"],"SplineVec::curvature::x":[175,3,1,"_CPPv4N9SplineVec9curvatureE2in2in"],"SplineVec::curvature_D":[175,2,1,"_CPPv4N9SplineVec11curvature_DE2in2in"],"SplineVec::curvature_D::self":[175,3,1,"_CPPv4N9SplineVec11curvature_DE2in2in"],"SplineVec::curvature_D::x":[175,3,1,"_CPPv4N9SplineVec11curvature_DE2in2in"],"SplineVec::eval":[175,2,1,"_CPPv4N9SplineVec4evalE2in2in"],"SplineVec::eval::self":[175,3,1,"_CPPv4N9SplineVec4evalE2in2in"],"SplineVec::eval::x":[175,3,1,"_CPPv4N9SplineVec4evalE2in2in"],"SplineVec::eval_D":[175,2,1,"_CPPv4N9SplineVec6eval_DE2in2in"],"SplineVec::eval_D::self":[175,3,1,"_CPPv4N9SplineVec6eval_DE2in2in"],"SplineVec::eval_D::x":[175,3,1,"_CPPv4N9SplineVec6eval_DE2in2in"],"SplineVec::eval_DD":[175,2,1,"_CPPv4N9SplineVec7eval_DDE2in2in"],"SplineVec::eval_DD::self":[175,3,1,"_CPPv4N9SplineVec7eval_DDE2in2in"],"SplineVec::eval_DD::x":[175,3,1,"_CPPv4N9SplineVec7eval_DDE2in2in"],"SplineVec::eval_DDD":[175,2,1,"_CPPv4N9SplineVec8eval_DDDE2in2in"],"SplineVec::eval_DDD::self":[175,3,1,"_CPPv4N9SplineVec8eval_DDDE2in2in"],"SplineVec::eval_DDD::x":[175,3,1,"_CPPv4N9SplineVec8eval_DDDE2in2in"],"SplineVec::get_knots":[175,2,1,"_CPPv4N9SplineVec9get_knotsE2in"],"SplineVec::get_knots::self":[175,3,1,"_CPPv4N9SplineVec9get_knotsE2in"],"SplineVec::knots":[175,2,1,"_CPPv4N9SplineVec5knotsE2in2in"],"SplineVec::knots::self":[175,3,1,"_CPPv4N9SplineVec5knotsE2in2in"],"SplineVec::knots::x":[175,3,1,"_CPPv4N9SplineVec5knotsE2in2in"],"SplineVec::setup":[175,2,1,"_CPPv4N9SplineVec5setupE2in2in"],"SplineVec::setup::self":[175,3,1,"_CPPv4N9SplineVec5setupE2in2in"],"SplineVec::setup::y":[175,3,1,"_CPPv4N9SplineVec5setupE2in2in"],"SplineVec::tmax":[175,2,1,"_CPPv4N9SplineVec4tmaxE2in2in"],"SplineVec::tmax::self":[175,3,1,"_CPPv4N9SplineVec4tmaxE2in2in"],"SplineVec::tmax::x":[175,3,1,"_CPPv4N9SplineVec4tmaxE2in2in"],"SplineVec::tmin":[175,2,1,"_CPPv4N9SplineVec4tminE2in2in"],"SplineVec::tmin::self":[175,3,1,"_CPPv4N9SplineVec4tminE2in2in"],"SplineVec::tmin::x":[175,3,1,"_CPPv4N9SplineVec4tminE2in2in"],"Splines::AKIMA2D_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType2D12AKIMA2D_TYPEE"],"Splines::AKIMA_QUINTIC":[58,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13AKIMA_QUINTICE"],"Splines::AKIMA_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D10AKIMA_TYPEE"],"Splines::Akima2Dspline":[27,1,1,"_CPPv4N7Splines13Akima2DsplineE"],"Splines::Akima2Dspline::Akima2Dspline":[27,2,1,"_CPPv4N7Splines13Akima2Dspline13Akima2DsplineERK6string"],"Splines::Akima2Dspline::Akima2Dspline::name":[27,3,1,"_CPPv4N7Splines13Akima2Dspline13Akima2DsplineERK6string"],"Splines::Akima2Dspline::D":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline1DE9real_type9real_typeAL3E_9real_type"],"Splines::Akima2Dspline::D::d":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline1DE9real_type9real_typeAL3E_9real_type"],"Splines::Akima2Dspline::D::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline1DE9real_type9real_typeAL3E_9real_type"],"Splines::Akima2Dspline::D::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline1DE9real_type9real_typeAL3E_9real_type"],"Splines::Akima2Dspline::DD":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Akima2Dspline::DD::dd":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Akima2Dspline::DD::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Akima2Dspline::DD::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Akima2Dspline::Dx":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline2DxE9real_type9real_type"],"Splines::Akima2Dspline::Dx::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DxE9real_type9real_type"],"Splines::Akima2Dspline::Dx::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DxE9real_type9real_type"],"Splines::Akima2Dspline::DxNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline6DxNodeE7integer7integer"],"Splines::Akima2Dspline::DxNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline6DxNodeE7integer7integer"],"Splines::Akima2Dspline::DxNode::j":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline6DxNodeE7integer7integer"],"Splines::Akima2Dspline::Dxx":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline3DxxE9real_type9real_type"],"Splines::Akima2Dspline::Dxx::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DxxE9real_type9real_type"],"Splines::Akima2Dspline::Dxx::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DxxE9real_type9real_type"],"Splines::Akima2Dspline::Dxy":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline3DxyE9real_type9real_type"],"Splines::Akima2Dspline::Dxy::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DxyE9real_type9real_type"],"Splines::Akima2Dspline::Dxy::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DxyE9real_type9real_type"],"Splines::Akima2Dspline::DxyNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline7DxyNodeE7integer7integer"],"Splines::Akima2Dspline::DxyNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline7DxyNodeE7integer7integer"],"Splines::Akima2Dspline::DxyNode::j":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline7DxyNodeE7integer7integer"],"Splines::Akima2Dspline::Dy":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline2DyE9real_type9real_type"],"Splines::Akima2Dspline::Dy::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DyE9real_type9real_type"],"Splines::Akima2Dspline::Dy::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DyE9real_type9real_type"],"Splines::Akima2Dspline::DyNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline6DyNodeE7integer7integer"],"Splines::Akima2Dspline::DyNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline6DyNodeE7integer7integer"],"Splines::Akima2Dspline::DyNode::j":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline6DyNodeE7integer7integer"],"Splines::Akima2Dspline::Dyy":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline3DyyE9real_type9real_type"],"Splines::Akima2Dspline::Dyy::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DyyE9real_type9real_type"],"Splines::Akima2Dspline::Dyy::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DyyE9real_type9real_type"],"Splines::Akima2Dspline::build":[27,2,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::build::fortran_storage":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::build::gc":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK16GenericContainer"],"Splines::Akima2Dspline::build::incx":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Akima2Dspline::build::incy":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Akima2Dspline::build::ldZ":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Akima2Dspline::build::nx":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::Akima2Dspline::build::ny":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::Akima2Dspline::build::transposed":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::build::x":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::build::y":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::build::z":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::clear":[27,2,1,"_CPPv4N7Splines13Akima2Dspline5clearEv"],"Splines::Akima2Dspline::eval":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4evalE9real_type9real_type"],"Splines::Akima2Dspline::eval::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline4evalE9real_type9real_type"],"Splines::Akima2Dspline::eval::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline4evalE9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_1":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_1::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_1::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_2":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_2::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_2::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2_2":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_2_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2_2::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_2_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2_2::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_2_2E9real_type9real_type"],"Splines::Akima2Dspline::info":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4infoEv"],"Splines::Akima2Dspline::info::stream":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline4infoER12ostream_type"],"Splines::Akima2Dspline::is_x_bounded":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline12is_x_boundedEv"],"Splines::Akima2Dspline::is_x_closed":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline11is_x_closedEv"],"Splines::Akima2Dspline::is_y_bounded":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline12is_y_boundedEv"],"Splines::Akima2Dspline::is_y_closed":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline11is_y_closedEv"],"Splines::Akima2Dspline::make_x_bounded":[27,2,1,"_CPPv4N7Splines13Akima2Dspline14make_x_boundedEv"],"Splines::Akima2Dspline::make_x_closed":[27,2,1,"_CPPv4N7Splines13Akima2Dspline13make_x_closedEv"],"Splines::Akima2Dspline::make_x_opened":[27,2,1,"_CPPv4N7Splines13Akima2Dspline13make_x_openedEv"],"Splines::Akima2Dspline::make_x_unbounded":[27,2,1,"_CPPv4N7Splines13Akima2Dspline16make_x_unboundedEv"],"Splines::Akima2Dspline::make_y_bounded":[27,2,1,"_CPPv4N7Splines13Akima2Dspline14make_y_boundedEv"],"Splines::Akima2Dspline::make_y_closed":[27,2,1,"_CPPv4N7Splines13Akima2Dspline13make_y_closedEv"],"Splines::Akima2Dspline::make_y_opened":[27,2,1,"_CPPv4N7Splines13Akima2Dspline13make_y_openedEv"],"Splines::Akima2Dspline::make_y_unbounded":[27,2,1,"_CPPv4N7Splines13Akima2Dspline16make_y_unboundedEv"],"Splines::Akima2Dspline::name":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4nameEv"],"Splines::Akima2Dspline::numPointX":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline9numPointXEv"],"Splines::Akima2Dspline::numPointY":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline9numPointYEv"],"Splines::Akima2Dspline::operator()":[27,2,1,"_CPPv4NK7Splines13Akima2DsplineclE9real_type9real_type"],"Splines::Akima2Dspline::operator()::x":[27,3,1,"_CPPv4NK7Splines13Akima2DsplineclE9real_type9real_type"],"Splines::Akima2Dspline::operator()::y":[27,3,1,"_CPPv4NK7Splines13Akima2DsplineclE9real_type9real_type"],"Splines::Akima2Dspline::setup":[27,2,1,"_CPPv4N7Splines13Akima2Dspline5setupERK16GenericContainer"],"Splines::Akima2Dspline::setup::gc":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5setupERK16GenericContainer"],"Splines::Akima2Dspline::type_name":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline9type_nameEv"],"Splines::Akima2Dspline::writeToStream":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline13writeToStreamER12ostream_type"],"Splines::Akima2Dspline::writeToStream::s":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline13writeToStreamER12ostream_type"],"Splines::Akima2Dspline::xMax":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4xMaxEv"],"Splines::Akima2Dspline::xMin":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4xMinEv"],"Splines::Akima2Dspline::xNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline5xNodeE7integer"],"Splines::Akima2Dspline::xNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline5xNodeE7integer"],"Splines::Akima2Dspline::yMax":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4yMaxEv"],"Splines::Akima2Dspline::yMin":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4yMinEv"],"Splines::Akima2Dspline::yNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline5yNodeE7integer"],"Splines::Akima2Dspline::yNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline5yNodeE7integer"],"Splines::Akima2Dspline::zMax":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4zMaxEv"],"Splines::Akima2Dspline::zMin":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4zMinEv"],"Splines::Akima2Dspline::zNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline5zNodeE7integer7integer"],"Splines::Akima2Dspline::zNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline5zNodeE7integer7integer"],"Splines::Akima2Dspline::zNode::j":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline5zNodeE7integer7integer"],"Splines::Akima2Dspline::~Akima2Dspline":[27,2,1,"_CPPv4N7Splines13Akima2DsplineD0Ev"],"Splines::AkimaSpline":[28,1,1,"_CPPv4N7Splines11AkimaSplineE"],"Splines::AkimaSpline::AkimaSpline":[28,2,1,"_CPPv4N7Splines11AkimaSpline11AkimaSplineERK6string"],"Splines::AkimaSpline::AkimaSpline::name":[28,3,1,"_CPPv4N7Splines11AkimaSpline11AkimaSplineERK6string"],"Splines::AkimaSpline::D":[28,2,1,"_CPPv4NK7Splines11AkimaSpline1DE9real_type"],"Splines::AkimaSpline::D::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline1DE9real_type"],"Splines::AkimaSpline::DD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline2DDE9real_type"],"Splines::AkimaSpline::DD::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline2DDE9real_type"],"Splines::AkimaSpline::DDD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline3DDDE9real_type"],"Splines::AkimaSpline::DDD::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline3DDDE9real_type"],"Splines::AkimaSpline::DDDD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4DDDDE9real_type"],"Splines::AkimaSpline::DDDDD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline5DDDDDE9real_type"],"Splines::AkimaSpline::build":[28,2,1,"_CPPv4N7Splines11AkimaSpline5buildEv"],"Splines::AkimaSpline::build::gc":[28,3,1,"_CPPv4N7Splines11AkimaSpline5buildERK16GenericContainer"],"Splines::AkimaSpline::build::incx":[28,3,1,"_CPPv4N7Splines11AkimaSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::AkimaSpline::build::incy":[28,3,1,"_CPPv4N7Splines11AkimaSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::AkimaSpline::build::incyp":[28,3,1,"_CPPv4N7Splines11AkimaSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::AkimaSpline::build::n":[28,3,1,"_CPPv4N7Splines11AkimaSpline5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::AkimaSpline::build::x":[28,3,1,"_CPPv4N7Splines11AkimaSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::AkimaSpline::build::y":[28,3,1,"_CPPv4N7Splines11AkimaSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::AkimaSpline::build::yp":[28,3,1,"_CPPv4N7Splines11AkimaSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::AkimaSpline::clear":[28,2,1,"_CPPv4N7Splines11AkimaSpline5clearEv"],"Splines::AkimaSpline::coeffs":[28,2,1,"_CPPv4NK7Splines11AkimaSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::AkimaSpline::coeffs::cfs":[28,3,1,"_CPPv4NK7Splines11AkimaSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::AkimaSpline::coeffs::nodes":[28,3,1,"_CPPv4NK7Splines11AkimaSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::AkimaSpline::coeffs::transpose":[28,3,1,"_CPPv4NK7Splines11AkimaSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::AkimaSpline::copySpline":[28,2,1,"_CPPv4N7Splines11AkimaSpline10copySplineERK15CubicSplineBase"],"Splines::AkimaSpline::copySpline::S":[28,3,1,"_CPPv4N7Splines11AkimaSpline10copySplineERK15CubicSplineBase"],"Splines::AkimaSpline::dropBack":[28,2,1,"_CPPv4N7Splines11AkimaSpline8dropBackEv"],"Splines::AkimaSpline::dump":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4dumpER12ostream_type7integerPKc"],"Splines::AkimaSpline::dump::fname":[28,3,1,"_CPPv4NK7Splines11AkimaSpline4dumpEPKc7integerPKc"],"Splines::AkimaSpline::dump::header":[28,3,1,"_CPPv4NK7Splines11AkimaSpline4dumpER12ostream_type7integerPKc"],"Splines::AkimaSpline::dump::nintervals":[28,3,1,"_CPPv4NK7Splines11AkimaSpline4dumpER12ostream_type7integerPKc"],"Splines::AkimaSpline::dump::s":[28,3,1,"_CPPv4NK7Splines11AkimaSpline4dumpER12ostream_type7integerPKc"],"Splines::AkimaSpline::eval":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4evalE9real_type"],"Splines::AkimaSpline::eval::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline4evalE9real_type"],"Splines::AkimaSpline::eval_D":[28,2,1,"_CPPv4NK7Splines11AkimaSpline6eval_DE9real_type"],"Splines::AkimaSpline::eval_D::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline6eval_DE9real_type"],"Splines::AkimaSpline::eval_DD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline7eval_DDE9real_type"],"Splines::AkimaSpline::eval_DD::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline7eval_DDE9real_type"],"Splines::AkimaSpline::eval_DDD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline8eval_DDDE9real_type"],"Splines::AkimaSpline::eval_DDD::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline8eval_DDDE9real_type"],"Splines::AkimaSpline::eval_DDDD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline9eval_DDDDE9real_type"],"Splines::AkimaSpline::eval_DDDD::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline9eval_DDDDE9real_type"],"Splines::AkimaSpline::eval_DDDDD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline10eval_DDDDDE9real_type"],"Splines::AkimaSpline::eval_DDDDD::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline10eval_DDDDDE9real_type"],"Splines::AkimaSpline::id_D":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4id_DE7integer9real_type"],"Splines::AkimaSpline::id_D::ni":[28,3,1,"_CPPv4NK7Splines11AkimaSpline4id_DE7integer9real_type"],"Splines::AkimaSpline::id_D::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline4id_DE7integer9real_type"],"Splines::AkimaSpline::id_DD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline5id_DDE7integer9real_type"],"Splines::AkimaSpline::id_DD::ni":[28,3,1,"_CPPv4NK7Splines11AkimaSpline5id_DDE7integer9real_type"],"Splines::AkimaSpline::id_DD::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline5id_DDE7integer9real_type"],"Splines::AkimaSpline::id_DDD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline6id_DDDE7integer9real_type"],"Splines::AkimaSpline::id_DDD::ni":[28,3,1,"_CPPv4NK7Splines11AkimaSpline6id_DDDE7integer9real_type"],"Splines::AkimaSpline::id_DDD::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline6id_DDDE7integer9real_type"],"Splines::AkimaSpline::id_DDDD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline7id_DDDDE7integer9real_type"],"Splines::AkimaSpline::id_DDDDD":[28,2,1,"_CPPv4NK7Splines11AkimaSpline8id_DDDDDE7integer9real_type"],"Splines::AkimaSpline::id_eval":[28,2,1,"_CPPv4NK7Splines11AkimaSpline7id_evalE7integer9real_type"],"Splines::AkimaSpline::id_eval::ni":[28,3,1,"_CPPv4NK7Splines11AkimaSpline7id_evalE7integer9real_type"],"Splines::AkimaSpline::id_eval::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline7id_evalE7integer9real_type"],"Splines::AkimaSpline::info":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4infoEv"],"Splines::AkimaSpline::info::stream":[28,3,1,"_CPPv4NK7Splines11AkimaSpline4infoER12ostream_type"],"Splines::AkimaSpline::is_bounded":[28,2,1,"_CPPv4NK7Splines11AkimaSpline10is_boundedEv"],"Splines::AkimaSpline::is_closed":[28,2,1,"_CPPv4NK7Splines11AkimaSpline9is_closedEv"],"Splines::AkimaSpline::is_extended_constant":[28,2,1,"_CPPv4NK7Splines11AkimaSpline20is_extended_constantEv"],"Splines::AkimaSpline::make_bounded":[28,2,1,"_CPPv4N7Splines11AkimaSpline12make_boundedEv"],"Splines::AkimaSpline::make_closed":[28,2,1,"_CPPv4N7Splines11AkimaSpline11make_closedEv"],"Splines::AkimaSpline::make_extended_constant":[28,2,1,"_CPPv4N7Splines11AkimaSpline22make_extended_constantEv"],"Splines::AkimaSpline::make_extended_not_constant":[28,2,1,"_CPPv4N7Splines11AkimaSpline26make_extended_not_constantEv"],"Splines::AkimaSpline::make_opened":[28,2,1,"_CPPv4N7Splines11AkimaSpline11make_openedEv"],"Splines::AkimaSpline::make_unbounded":[28,2,1,"_CPPv4N7Splines11AkimaSpline14make_unboundedEv"],"Splines::AkimaSpline::name":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4nameEv"],"Splines::AkimaSpline::numPoints":[28,2,1,"_CPPv4NK7Splines11AkimaSpline9numPointsEv"],"Splines::AkimaSpline::operator()":[28,2,1,"_CPPv4NK7Splines11AkimaSplineclE9real_type"],"Splines::AkimaSpline::operator()::x":[28,3,1,"_CPPv4NK7Splines11AkimaSplineclE9real_type"],"Splines::AkimaSpline::order":[28,2,1,"_CPPv4NK7Splines11AkimaSpline5orderEv"],"Splines::AkimaSpline::pushBack":[28,2,1,"_CPPv4N7Splines11AkimaSpline8pushBackE9real_type9real_type"],"Splines::AkimaSpline::pushBack::x":[28,3,1,"_CPPv4N7Splines11AkimaSpline8pushBackE9real_type9real_type"],"Splines::AkimaSpline::pushBack::y":[28,3,1,"_CPPv4N7Splines11AkimaSpline8pushBackE9real_type9real_type"],"Splines::AkimaSpline::reserve":[28,2,1,"_CPPv4N7Splines11AkimaSpline7reserveE7integer"],"Splines::AkimaSpline::reserve::npts":[28,3,1,"_CPPv4N7Splines11AkimaSpline7reserveE7integer"],"Splines::AkimaSpline::reserve_external":[28,2,1,"_CPPv4N7Splines11AkimaSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::AkimaSpline::reserve_external::n":[28,3,1,"_CPPv4N7Splines11AkimaSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::AkimaSpline::reserve_external::p_dy":[28,3,1,"_CPPv4N7Splines11AkimaSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::AkimaSpline::reserve_external::p_x":[28,3,1,"_CPPv4N7Splines11AkimaSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::AkimaSpline::reserve_external::p_y":[28,3,1,"_CPPv4N7Splines11AkimaSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::AkimaSpline::search":[28,2,1,"_CPPv4NK7Splines11AkimaSpline6searchER9real_type"],"Splines::AkimaSpline::search::x":[28,3,1,"_CPPv4NK7Splines11AkimaSpline6searchER9real_type"],"Splines::AkimaSpline::setOrigin":[28,2,1,"_CPPv4N7Splines11AkimaSpline9setOriginE9real_type"],"Splines::AkimaSpline::setOrigin::x0":[28,3,1,"_CPPv4N7Splines11AkimaSpline9setOriginE9real_type"],"Splines::AkimaSpline::setRange":[28,2,1,"_CPPv4N7Splines11AkimaSpline8setRangeE9real_type9real_type"],"Splines::AkimaSpline::setRange::xmax":[28,3,1,"_CPPv4N7Splines11AkimaSpline8setRangeE9real_type9real_type"],"Splines::AkimaSpline::setRange::xmin":[28,3,1,"_CPPv4N7Splines11AkimaSpline8setRangeE9real_type9real_type"],"Splines::AkimaSpline::setup":[28,2,1,"_CPPv4N7Splines11AkimaSpline5setupERK16GenericContainer"],"Splines::AkimaSpline::setup::gc":[28,3,1,"_CPPv4N7Splines11AkimaSpline5setupERK16GenericContainer"],"Splines::AkimaSpline::type":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4typeEv"],"Splines::AkimaSpline::type_name":[28,2,1,"_CPPv4NK7Splines11AkimaSpline9type_nameEv"],"Splines::AkimaSpline::writeToStream":[28,2,1,"_CPPv4NK7Splines11AkimaSpline13writeToStreamER12ostream_type"],"Splines::AkimaSpline::writeToStream::s":[28,3,1,"_CPPv4NK7Splines11AkimaSpline13writeToStreamER12ostream_type"],"Splines::AkimaSpline::xBegin":[28,2,1,"_CPPv4NK7Splines11AkimaSpline6xBeginEv"],"Splines::AkimaSpline::xEnd":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4xEndEv"],"Splines::AkimaSpline::xMax":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4xMaxEv"],"Splines::AkimaSpline::xMin":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4xMinEv"],"Splines::AkimaSpline::xNode":[28,2,1,"_CPPv4NK7Splines11AkimaSpline5xNodeE7integer"],"Splines::AkimaSpline::xNode::i":[28,3,1,"_CPPv4NK7Splines11AkimaSpline5xNodeE7integer"],"Splines::AkimaSpline::yBegin":[28,2,1,"_CPPv4NK7Splines11AkimaSpline6yBeginEv"],"Splines::AkimaSpline::yEnd":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4yEndEv"],"Splines::AkimaSpline::yMax":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4yMaxEv"],"Splines::AkimaSpline::yMin":[28,2,1,"_CPPv4NK7Splines11AkimaSpline4yMinEv"],"Splines::AkimaSpline::yNode":[28,2,1,"_CPPv4NK7Splines11AkimaSpline5yNodeE7integer"],"Splines::AkimaSpline::yNode::i":[28,3,1,"_CPPv4NK7Splines11AkimaSpline5yNodeE7integer"],"Splines::AkimaSpline::ypNode":[28,2,1,"_CPPv4NK7Splines11AkimaSpline6ypNodeE7integer"],"Splines::AkimaSpline::ypNode::i":[28,3,1,"_CPPv4NK7Splines11AkimaSpline6ypNodeE7integer"],"Splines::AkimaSpline::~AkimaSpline":[28,2,1,"_CPPv4N7Splines11AkimaSplineD0Ev"],"Splines::BESSEL_QUINTIC":[58,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE14BESSEL_QUINTICE"],"Splines::BESSEL_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D11BESSEL_TYPEE"],"Splines::BICUBIC_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType2D12BICUBIC_TYPEE"],"Splines::BILINEAR_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType2D13BILINEAR_TYPEE"],"Splines::BIQUINTIC_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType2D14BIQUINTIC_TYPEE"],"Splines::BesselSpline":[29,1,1,"_CPPv4N7Splines12BesselSplineE"],"Splines::BesselSpline::BesselSpline":[29,2,1,"_CPPv4N7Splines12BesselSpline12BesselSplineERK6string"],"Splines::BesselSpline::BesselSpline::name":[29,3,1,"_CPPv4N7Splines12BesselSpline12BesselSplineERK6string"],"Splines::BesselSpline::D":[29,2,1,"_CPPv4NK7Splines12BesselSpline1DE9real_type"],"Splines::BesselSpline::D::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline1DE9real_type"],"Splines::BesselSpline::DD":[29,2,1,"_CPPv4NK7Splines12BesselSpline2DDE9real_type"],"Splines::BesselSpline::DD::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline2DDE9real_type"],"Splines::BesselSpline::DDD":[29,2,1,"_CPPv4NK7Splines12BesselSpline3DDDE9real_type"],"Splines::BesselSpline::DDD::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline3DDDE9real_type"],"Splines::BesselSpline::DDDD":[29,2,1,"_CPPv4NK7Splines12BesselSpline4DDDDE9real_type"],"Splines::BesselSpline::DDDDD":[29,2,1,"_CPPv4NK7Splines12BesselSpline5DDDDDE9real_type"],"Splines::BesselSpline::build":[29,2,1,"_CPPv4N7Splines12BesselSpline5buildEv"],"Splines::BesselSpline::build::gc":[29,3,1,"_CPPv4N7Splines12BesselSpline5buildERK16GenericContainer"],"Splines::BesselSpline::build::incx":[29,3,1,"_CPPv4N7Splines12BesselSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::BesselSpline::build::incy":[29,3,1,"_CPPv4N7Splines12BesselSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::BesselSpline::build::incyp":[29,3,1,"_CPPv4N7Splines12BesselSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::BesselSpline::build::n":[29,3,1,"_CPPv4N7Splines12BesselSpline5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::BesselSpline::build::x":[29,3,1,"_CPPv4N7Splines12BesselSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::BesselSpline::build::y":[29,3,1,"_CPPv4N7Splines12BesselSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::BesselSpline::build::yp":[29,3,1,"_CPPv4N7Splines12BesselSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::BesselSpline::clear":[29,2,1,"_CPPv4N7Splines12BesselSpline5clearEv"],"Splines::BesselSpline::coeffs":[29,2,1,"_CPPv4NK7Splines12BesselSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::BesselSpline::coeffs::cfs":[29,3,1,"_CPPv4NK7Splines12BesselSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::BesselSpline::coeffs::nodes":[29,3,1,"_CPPv4NK7Splines12BesselSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::BesselSpline::coeffs::transpose":[29,3,1,"_CPPv4NK7Splines12BesselSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::BesselSpline::copySpline":[29,2,1,"_CPPv4N7Splines12BesselSpline10copySplineERK15CubicSplineBase"],"Splines::BesselSpline::copySpline::S":[29,3,1,"_CPPv4N7Splines12BesselSpline10copySplineERK15CubicSplineBase"],"Splines::BesselSpline::dropBack":[29,2,1,"_CPPv4N7Splines12BesselSpline8dropBackEv"],"Splines::BesselSpline::dump":[29,2,1,"_CPPv4NK7Splines12BesselSpline4dumpER12ostream_type7integerPKc"],"Splines::BesselSpline::dump::fname":[29,3,1,"_CPPv4NK7Splines12BesselSpline4dumpEPKc7integerPKc"],"Splines::BesselSpline::dump::header":[29,3,1,"_CPPv4NK7Splines12BesselSpline4dumpER12ostream_type7integerPKc"],"Splines::BesselSpline::dump::nintervals":[29,3,1,"_CPPv4NK7Splines12BesselSpline4dumpER12ostream_type7integerPKc"],"Splines::BesselSpline::dump::s":[29,3,1,"_CPPv4NK7Splines12BesselSpline4dumpER12ostream_type7integerPKc"],"Splines::BesselSpline::eval":[29,2,1,"_CPPv4NK7Splines12BesselSpline4evalE9real_type"],"Splines::BesselSpline::eval::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline4evalE9real_type"],"Splines::BesselSpline::eval_D":[29,2,1,"_CPPv4NK7Splines12BesselSpline6eval_DE9real_type"],"Splines::BesselSpline::eval_D::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline6eval_DE9real_type"],"Splines::BesselSpline::eval_DD":[29,2,1,"_CPPv4NK7Splines12BesselSpline7eval_DDE9real_type"],"Splines::BesselSpline::eval_DD::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline7eval_DDE9real_type"],"Splines::BesselSpline::eval_DDD":[29,2,1,"_CPPv4NK7Splines12BesselSpline8eval_DDDE9real_type"],"Splines::BesselSpline::eval_DDD::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline8eval_DDDE9real_type"],"Splines::BesselSpline::eval_DDDD":[29,2,1,"_CPPv4NK7Splines12BesselSpline9eval_DDDDE9real_type"],"Splines::BesselSpline::eval_DDDD::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline9eval_DDDDE9real_type"],"Splines::BesselSpline::eval_DDDDD":[29,2,1,"_CPPv4NK7Splines12BesselSpline10eval_DDDDDE9real_type"],"Splines::BesselSpline::eval_DDDDD::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline10eval_DDDDDE9real_type"],"Splines::BesselSpline::id_D":[29,2,1,"_CPPv4NK7Splines12BesselSpline4id_DE7integer9real_type"],"Splines::BesselSpline::id_D::ni":[29,3,1,"_CPPv4NK7Splines12BesselSpline4id_DE7integer9real_type"],"Splines::BesselSpline::id_D::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline4id_DE7integer9real_type"],"Splines::BesselSpline::id_DD":[29,2,1,"_CPPv4NK7Splines12BesselSpline5id_DDE7integer9real_type"],"Splines::BesselSpline::id_DD::ni":[29,3,1,"_CPPv4NK7Splines12BesselSpline5id_DDE7integer9real_type"],"Splines::BesselSpline::id_DD::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline5id_DDE7integer9real_type"],"Splines::BesselSpline::id_DDD":[29,2,1,"_CPPv4NK7Splines12BesselSpline6id_DDDE7integer9real_type"],"Splines::BesselSpline::id_DDD::ni":[29,3,1,"_CPPv4NK7Splines12BesselSpline6id_DDDE7integer9real_type"],"Splines::BesselSpline::id_DDD::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline6id_DDDE7integer9real_type"],"Splines::BesselSpline::id_DDDD":[29,2,1,"_CPPv4NK7Splines12BesselSpline7id_DDDDE7integer9real_type"],"Splines::BesselSpline::id_DDDDD":[29,2,1,"_CPPv4NK7Splines12BesselSpline8id_DDDDDE7integer9real_type"],"Splines::BesselSpline::id_eval":[29,2,1,"_CPPv4NK7Splines12BesselSpline7id_evalE7integer9real_type"],"Splines::BesselSpline::id_eval::ni":[29,3,1,"_CPPv4NK7Splines12BesselSpline7id_evalE7integer9real_type"],"Splines::BesselSpline::id_eval::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline7id_evalE7integer9real_type"],"Splines::BesselSpline::info":[29,2,1,"_CPPv4NK7Splines12BesselSpline4infoEv"],"Splines::BesselSpline::info::stream":[29,3,1,"_CPPv4NK7Splines12BesselSpline4infoER12ostream_type"],"Splines::BesselSpline::is_bounded":[29,2,1,"_CPPv4NK7Splines12BesselSpline10is_boundedEv"],"Splines::BesselSpline::is_closed":[29,2,1,"_CPPv4NK7Splines12BesselSpline9is_closedEv"],"Splines::BesselSpline::is_extended_constant":[29,2,1,"_CPPv4NK7Splines12BesselSpline20is_extended_constantEv"],"Splines::BesselSpline::make_bounded":[29,2,1,"_CPPv4N7Splines12BesselSpline12make_boundedEv"],"Splines::BesselSpline::make_closed":[29,2,1,"_CPPv4N7Splines12BesselSpline11make_closedEv"],"Splines::BesselSpline::make_extended_constant":[29,2,1,"_CPPv4N7Splines12BesselSpline22make_extended_constantEv"],"Splines::BesselSpline::make_extended_not_constant":[29,2,1,"_CPPv4N7Splines12BesselSpline26make_extended_not_constantEv"],"Splines::BesselSpline::make_opened":[29,2,1,"_CPPv4N7Splines12BesselSpline11make_openedEv"],"Splines::BesselSpline::make_unbounded":[29,2,1,"_CPPv4N7Splines12BesselSpline14make_unboundedEv"],"Splines::BesselSpline::name":[29,2,1,"_CPPv4NK7Splines12BesselSpline4nameEv"],"Splines::BesselSpline::numPoints":[29,2,1,"_CPPv4NK7Splines12BesselSpline9numPointsEv"],"Splines::BesselSpline::operator()":[29,2,1,"_CPPv4NK7Splines12BesselSplineclE9real_type"],"Splines::BesselSpline::operator()::x":[29,3,1,"_CPPv4NK7Splines12BesselSplineclE9real_type"],"Splines::BesselSpline::order":[29,2,1,"_CPPv4NK7Splines12BesselSpline5orderEv"],"Splines::BesselSpline::pushBack":[29,2,1,"_CPPv4N7Splines12BesselSpline8pushBackE9real_type9real_type"],"Splines::BesselSpline::pushBack::x":[29,3,1,"_CPPv4N7Splines12BesselSpline8pushBackE9real_type9real_type"],"Splines::BesselSpline::pushBack::y":[29,3,1,"_CPPv4N7Splines12BesselSpline8pushBackE9real_type9real_type"],"Splines::BesselSpline::reserve":[29,2,1,"_CPPv4N7Splines12BesselSpline7reserveE7integer"],"Splines::BesselSpline::reserve::npts":[29,3,1,"_CPPv4N7Splines12BesselSpline7reserveE7integer"],"Splines::BesselSpline::reserve_external":[29,2,1,"_CPPv4N7Splines12BesselSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::BesselSpline::reserve_external::n":[29,3,1,"_CPPv4N7Splines12BesselSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::BesselSpline::reserve_external::p_dy":[29,3,1,"_CPPv4N7Splines12BesselSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::BesselSpline::reserve_external::p_x":[29,3,1,"_CPPv4N7Splines12BesselSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::BesselSpline::reserve_external::p_y":[29,3,1,"_CPPv4N7Splines12BesselSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::BesselSpline::search":[29,2,1,"_CPPv4NK7Splines12BesselSpline6searchER9real_type"],"Splines::BesselSpline::search::x":[29,3,1,"_CPPv4NK7Splines12BesselSpline6searchER9real_type"],"Splines::BesselSpline::setOrigin":[29,2,1,"_CPPv4N7Splines12BesselSpline9setOriginE9real_type"],"Splines::BesselSpline::setOrigin::x0":[29,3,1,"_CPPv4N7Splines12BesselSpline9setOriginE9real_type"],"Splines::BesselSpline::setRange":[29,2,1,"_CPPv4N7Splines12BesselSpline8setRangeE9real_type9real_type"],"Splines::BesselSpline::setRange::xmax":[29,3,1,"_CPPv4N7Splines12BesselSpline8setRangeE9real_type9real_type"],"Splines::BesselSpline::setRange::xmin":[29,3,1,"_CPPv4N7Splines12BesselSpline8setRangeE9real_type9real_type"],"Splines::BesselSpline::setup":[29,2,1,"_CPPv4N7Splines12BesselSpline5setupERK16GenericContainer"],"Splines::BesselSpline::setup::gc":[29,3,1,"_CPPv4N7Splines12BesselSpline5setupERK16GenericContainer"],"Splines::BesselSpline::type":[29,2,1,"_CPPv4NK7Splines12BesselSpline4typeEv"],"Splines::BesselSpline::type_name":[29,2,1,"_CPPv4NK7Splines12BesselSpline9type_nameEv"],"Splines::BesselSpline::writeToStream":[29,2,1,"_CPPv4NK7Splines12BesselSpline13writeToStreamER12ostream_type"],"Splines::BesselSpline::writeToStream::s":[29,3,1,"_CPPv4NK7Splines12BesselSpline13writeToStreamER12ostream_type"],"Splines::BesselSpline::xBegin":[29,2,1,"_CPPv4NK7Splines12BesselSpline6xBeginEv"],"Splines::BesselSpline::xEnd":[29,2,1,"_CPPv4NK7Splines12BesselSpline4xEndEv"],"Splines::BesselSpline::xMax":[29,2,1,"_CPPv4NK7Splines12BesselSpline4xMaxEv"],"Splines::BesselSpline::xMin":[29,2,1,"_CPPv4NK7Splines12BesselSpline4xMinEv"],"Splines::BesselSpline::xNode":[29,2,1,"_CPPv4NK7Splines12BesselSpline5xNodeE7integer"],"Splines::BesselSpline::xNode::i":[29,3,1,"_CPPv4NK7Splines12BesselSpline5xNodeE7integer"],"Splines::BesselSpline::yBegin":[29,2,1,"_CPPv4NK7Splines12BesselSpline6yBeginEv"],"Splines::BesselSpline::yEnd":[29,2,1,"_CPPv4NK7Splines12BesselSpline4yEndEv"],"Splines::BesselSpline::yMax":[29,2,1,"_CPPv4NK7Splines12BesselSpline4yMaxEv"],"Splines::BesselSpline::yMin":[29,2,1,"_CPPv4NK7Splines12BesselSpline4yMinEv"],"Splines::BesselSpline::yNode":[29,2,1,"_CPPv4NK7Splines12BesselSpline5yNodeE7integer"],"Splines::BesselSpline::yNode::i":[29,3,1,"_CPPv4NK7Splines12BesselSpline5yNodeE7integer"],"Splines::BesselSpline::ypNode":[29,2,1,"_CPPv4NK7Splines12BesselSpline6ypNodeE7integer"],"Splines::BesselSpline::ypNode::i":[29,3,1,"_CPPv4NK7Splines12BesselSpline6ypNodeE7integer"],"Splines::BesselSpline::~BesselSpline":[29,2,1,"_CPPv4N7Splines12BesselSplineD0Ev"],"Splines::BiCubicSpline":[30,1,1,"_CPPv4N7Splines13BiCubicSplineE"],"Splines::BiCubicSpline::BiCubicSpline":[30,2,1,"_CPPv4N7Splines13BiCubicSpline13BiCubicSplineERK6string"],"Splines::BiCubicSpline::BiCubicSpline::name":[30,3,1,"_CPPv4N7Splines13BiCubicSpline13BiCubicSplineERK6string"],"Splines::BiCubicSpline::D":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSpline::D::d":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSpline::D::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSpline::D::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSpline::DD":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSpline::DD::dd":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSpline::DD::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSpline::DD::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSpline::Dx":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline2DxE9real_type9real_type"],"Splines::BiCubicSpline::Dx::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DxE9real_type9real_type"],"Splines::BiCubicSpline::Dx::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DxE9real_type9real_type"],"Splines::BiCubicSpline::DxNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline6DxNodeE7integer7integer"],"Splines::BiCubicSpline::DxNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline6DxNodeE7integer7integer"],"Splines::BiCubicSpline::DxNode::j":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline6DxNodeE7integer7integer"],"Splines::BiCubicSpline::Dxx":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline3DxxE9real_type9real_type"],"Splines::BiCubicSpline::Dxx::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DxxE9real_type9real_type"],"Splines::BiCubicSpline::Dxx::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DxxE9real_type9real_type"],"Splines::BiCubicSpline::Dxy":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline3DxyE9real_type9real_type"],"Splines::BiCubicSpline::Dxy::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DxyE9real_type9real_type"],"Splines::BiCubicSpline::Dxy::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DxyE9real_type9real_type"],"Splines::BiCubicSpline::DxyNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline7DxyNodeE7integer7integer"],"Splines::BiCubicSpline::DxyNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline7DxyNodeE7integer7integer"],"Splines::BiCubicSpline::DxyNode::j":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline7DxyNodeE7integer7integer"],"Splines::BiCubicSpline::Dy":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline2DyE9real_type9real_type"],"Splines::BiCubicSpline::Dy::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DyE9real_type9real_type"],"Splines::BiCubicSpline::Dy::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DyE9real_type9real_type"],"Splines::BiCubicSpline::DyNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline6DyNodeE7integer7integer"],"Splines::BiCubicSpline::DyNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline6DyNodeE7integer7integer"],"Splines::BiCubicSpline::DyNode::j":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline6DyNodeE7integer7integer"],"Splines::BiCubicSpline::Dyy":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline3DyyE9real_type9real_type"],"Splines::BiCubicSpline::Dyy::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DyyE9real_type9real_type"],"Splines::BiCubicSpline::Dyy::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DyyE9real_type9real_type"],"Splines::BiCubicSpline::build":[30,2,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::build::fortran_storage":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::build::gc":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK16GenericContainer"],"Splines::BiCubicSpline::build::incx":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSpline::build::incy":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSpline::build::ldZ":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSpline::build::nx":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiCubicSpline::build::ny":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiCubicSpline::build::transposed":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::build::x":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::build::y":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::build::z":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::clear":[30,2,1,"_CPPv4N7Splines13BiCubicSpline5clearEv"],"Splines::BiCubicSpline::eval":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4evalE9real_type9real_type"],"Splines::BiCubicSpline::eval::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline4evalE9real_type9real_type"],"Splines::BiCubicSpline::eval::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline4evalE9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_1":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_1::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_1::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_2":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_2::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_2::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2_2":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2_2::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2_2::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSpline::info":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4infoEv"],"Splines::BiCubicSpline::info::stream":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline4infoER12ostream_type"],"Splines::BiCubicSpline::is_x_bounded":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline12is_x_boundedEv"],"Splines::BiCubicSpline::is_x_closed":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline11is_x_closedEv"],"Splines::BiCubicSpline::is_y_bounded":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline12is_y_boundedEv"],"Splines::BiCubicSpline::is_y_closed":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline11is_y_closedEv"],"Splines::BiCubicSpline::make_x_bounded":[30,2,1,"_CPPv4N7Splines13BiCubicSpline14make_x_boundedEv"],"Splines::BiCubicSpline::make_x_closed":[30,2,1,"_CPPv4N7Splines13BiCubicSpline13make_x_closedEv"],"Splines::BiCubicSpline::make_x_opened":[30,2,1,"_CPPv4N7Splines13BiCubicSpline13make_x_openedEv"],"Splines::BiCubicSpline::make_x_unbounded":[30,2,1,"_CPPv4N7Splines13BiCubicSpline16make_x_unboundedEv"],"Splines::BiCubicSpline::make_y_bounded":[30,2,1,"_CPPv4N7Splines13BiCubicSpline14make_y_boundedEv"],"Splines::BiCubicSpline::make_y_closed":[30,2,1,"_CPPv4N7Splines13BiCubicSpline13make_y_closedEv"],"Splines::BiCubicSpline::make_y_opened":[30,2,1,"_CPPv4N7Splines13BiCubicSpline13make_y_openedEv"],"Splines::BiCubicSpline::make_y_unbounded":[30,2,1,"_CPPv4N7Splines13BiCubicSpline16make_y_unboundedEv"],"Splines::BiCubicSpline::name":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4nameEv"],"Splines::BiCubicSpline::numPointX":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline9numPointXEv"],"Splines::BiCubicSpline::numPointY":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline9numPointYEv"],"Splines::BiCubicSpline::operator()":[30,2,1,"_CPPv4NK7Splines13BiCubicSplineclE9real_type9real_type"],"Splines::BiCubicSpline::operator()::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSplineclE9real_type9real_type"],"Splines::BiCubicSpline::operator()::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSplineclE9real_type9real_type"],"Splines::BiCubicSpline::setup":[30,2,1,"_CPPv4N7Splines13BiCubicSpline5setupERK16GenericContainer"],"Splines::BiCubicSpline::setup::gc":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5setupERK16GenericContainer"],"Splines::BiCubicSpline::type_name":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline9type_nameEv"],"Splines::BiCubicSpline::writeToStream":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline13writeToStreamER12ostream_type"],"Splines::BiCubicSpline::writeToStream::s":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline13writeToStreamER12ostream_type"],"Splines::BiCubicSpline::xMax":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4xMaxEv"],"Splines::BiCubicSpline::xMin":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4xMinEv"],"Splines::BiCubicSpline::xNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline5xNodeE7integer"],"Splines::BiCubicSpline::xNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline5xNodeE7integer"],"Splines::BiCubicSpline::yMax":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4yMaxEv"],"Splines::BiCubicSpline::yMin":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4yMinEv"],"Splines::BiCubicSpline::yNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline5yNodeE7integer"],"Splines::BiCubicSpline::yNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline5yNodeE7integer"],"Splines::BiCubicSpline::zMax":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4zMaxEv"],"Splines::BiCubicSpline::zMin":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4zMinEv"],"Splines::BiCubicSpline::zNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline5zNodeE7integer7integer"],"Splines::BiCubicSpline::zNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline5zNodeE7integer7integer"],"Splines::BiCubicSpline::zNode::j":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline5zNodeE7integer7integer"],"Splines::BiCubicSpline::~BiCubicSpline":[30,2,1,"_CPPv4N7Splines13BiCubicSplineD0Ev"],"Splines::BiCubicSplineBase":[31,1,1,"_CPPv4N7Splines17BiCubicSplineBaseE"],"Splines::BiCubicSplineBase::BiCubicSplineBase":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase17BiCubicSplineBaseERK6string"],"Splines::BiCubicSplineBase::BiCubicSplineBase::name":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase17BiCubicSplineBaseERK6string"],"Splines::BiCubicSplineBase::D":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSplineBase::D::d":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSplineBase::D::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSplineBase::D::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSplineBase::DD":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSplineBase::DD::dd":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSplineBase::DD::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSplineBase::DD::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSplineBase::Dx":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase2DxE9real_type9real_type"],"Splines::BiCubicSplineBase::Dx::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DxE9real_type9real_type"],"Splines::BiCubicSplineBase::Dx::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DxE9real_type9real_type"],"Splines::BiCubicSplineBase::DxNode":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase6DxNodeE7integer7integer"],"Splines::BiCubicSplineBase::DxNode::i":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase6DxNodeE7integer7integer"],"Splines::BiCubicSplineBase::DxNode::j":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase6DxNodeE7integer7integer"],"Splines::BiCubicSplineBase::Dxx":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxxE9real_type9real_type"],"Splines::BiCubicSplineBase::Dxx::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxxE9real_type9real_type"],"Splines::BiCubicSplineBase::Dxx::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxxE9real_type9real_type"],"Splines::BiCubicSplineBase::Dxy":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dxy::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dxy::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxyE9real_type9real_type"],"Splines::BiCubicSplineBase::DxyNode":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase7DxyNodeE7integer7integer"],"Splines::BiCubicSplineBase::DxyNode::i":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase7DxyNodeE7integer7integer"],"Splines::BiCubicSplineBase::DxyNode::j":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase7DxyNodeE7integer7integer"],"Splines::BiCubicSplineBase::Dy":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase2DyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dy::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dy::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DyE9real_type9real_type"],"Splines::BiCubicSplineBase::DyNode":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase6DyNodeE7integer7integer"],"Splines::BiCubicSplineBase::DyNode::i":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase6DyNodeE7integer7integer"],"Splines::BiCubicSplineBase::DyNode::j":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase6DyNodeE7integer7integer"],"Splines::BiCubicSplineBase::Dyy":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase3DyyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dyy::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DyyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dyy::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DyyE9real_type9real_type"],"Splines::BiCubicSplineBase::build":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::build::fortran_storage":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::build::gc":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK16GenericContainer"],"Splines::BiCubicSplineBase::build::incx":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSplineBase::build::incy":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSplineBase::build::ldZ":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSplineBase::build::nx":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiCubicSplineBase::build::ny":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiCubicSplineBase::build::transposed":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::build::x":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::build::y":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::build::z":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::clear":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase5clearEv"],"Splines::BiCubicSplineBase::eval":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4evalE9real_type9real_type"],"Splines::BiCubicSplineBase::eval::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase4evalE9real_type9real_type"],"Splines::BiCubicSplineBase::eval::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase4evalE9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_1":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_1::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_1::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_2":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_2::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_2::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2_2":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2_2::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2_2::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSplineBase::info":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4infoEv"],"Splines::BiCubicSplineBase::info::stream":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase4infoER12ostream_type"],"Splines::BiCubicSplineBase::is_x_bounded":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase12is_x_boundedEv"],"Splines::BiCubicSplineBase::is_x_closed":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase11is_x_closedEv"],"Splines::BiCubicSplineBase::is_y_bounded":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase12is_y_boundedEv"],"Splines::BiCubicSplineBase::is_y_closed":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase11is_y_closedEv"],"Splines::BiCubicSplineBase::make_x_bounded":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase14make_x_boundedEv"],"Splines::BiCubicSplineBase::make_x_closed":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase13make_x_closedEv"],"Splines::BiCubicSplineBase::make_x_opened":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase13make_x_openedEv"],"Splines::BiCubicSplineBase::make_x_unbounded":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase16make_x_unboundedEv"],"Splines::BiCubicSplineBase::make_y_bounded":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase14make_y_boundedEv"],"Splines::BiCubicSplineBase::make_y_closed":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase13make_y_closedEv"],"Splines::BiCubicSplineBase::make_y_opened":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase13make_y_openedEv"],"Splines::BiCubicSplineBase::make_y_unbounded":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase16make_y_unboundedEv"],"Splines::BiCubicSplineBase::name":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4nameEv"],"Splines::BiCubicSplineBase::numPointX":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase9numPointXEv"],"Splines::BiCubicSplineBase::numPointY":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase9numPointYEv"],"Splines::BiCubicSplineBase::operator()":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBaseclE9real_type9real_type"],"Splines::BiCubicSplineBase::operator()::x":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBaseclE9real_type9real_type"],"Splines::BiCubicSplineBase::operator()::y":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBaseclE9real_type9real_type"],"Splines::BiCubicSplineBase::setup":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBase5setupERK16GenericContainer"],"Splines::BiCubicSplineBase::setup::gc":[31,3,1,"_CPPv4N7Splines17BiCubicSplineBase5setupERK16GenericContainer"],"Splines::BiCubicSplineBase::type_name":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase9type_nameEv"],"Splines::BiCubicSplineBase::writeToStream":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase13writeToStreamER12ostream_type"],"Splines::BiCubicSplineBase::writeToStream::s":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase13writeToStreamER12ostream_type"],"Splines::BiCubicSplineBase::xMax":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4xMaxEv"],"Splines::BiCubicSplineBase::xMin":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4xMinEv"],"Splines::BiCubicSplineBase::xNode":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase5xNodeE7integer"],"Splines::BiCubicSplineBase::xNode::i":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase5xNodeE7integer"],"Splines::BiCubicSplineBase::yMax":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4yMaxEv"],"Splines::BiCubicSplineBase::yMin":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4yMinEv"],"Splines::BiCubicSplineBase::yNode":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase5yNodeE7integer"],"Splines::BiCubicSplineBase::yNode::i":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase5yNodeE7integer"],"Splines::BiCubicSplineBase::zMax":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4zMaxEv"],"Splines::BiCubicSplineBase::zMin":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4zMinEv"],"Splines::BiCubicSplineBase::zNode":[31,2,1,"_CPPv4NK7Splines17BiCubicSplineBase5zNodeE7integer7integer"],"Splines::BiCubicSplineBase::zNode::i":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase5zNodeE7integer7integer"],"Splines::BiCubicSplineBase::zNode::j":[31,3,1,"_CPPv4NK7Splines17BiCubicSplineBase5zNodeE7integer7integer"],"Splines::BiCubicSplineBase::~BiCubicSplineBase":[31,2,1,"_CPPv4N7Splines17BiCubicSplineBaseD0Ev"],"Splines::BiQuinticSpline":[32,1,1,"_CPPv4N7Splines15BiQuinticSplineE"],"Splines::BiQuinticSpline::BiQuinticSpline":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline15BiQuinticSplineERK6string"],"Splines::BiQuinticSpline::BiQuinticSpline::name":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline15BiQuinticSplineERK6string"],"Splines::BiQuinticSpline::D":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSpline::D::d":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSpline::D::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSpline::D::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSpline::DD":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSpline::DD::dd":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSpline::DD::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSpline::DD::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSpline::Dx":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline2DxE9real_type9real_type"],"Splines::BiQuinticSpline::Dx::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DxE9real_type9real_type"],"Splines::BiQuinticSpline::Dx::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DxE9real_type9real_type"],"Splines::BiQuinticSpline::DxNode":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline6DxNodeE7integer7integer"],"Splines::BiQuinticSpline::DxNode::i":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline6DxNodeE7integer7integer"],"Splines::BiQuinticSpline::DxNode::j":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline6DxNodeE7integer7integer"],"Splines::BiQuinticSpline::Dxx":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline3DxxE9real_type9real_type"],"Splines::BiQuinticSpline::Dxx::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DxxE9real_type9real_type"],"Splines::BiQuinticSpline::Dxx::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DxxE9real_type9real_type"],"Splines::BiQuinticSpline::DxxNode":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline7DxxNodeE7integer7integer"],"Splines::BiQuinticSpline::DxxNode::i":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DxxNodeE7integer7integer"],"Splines::BiQuinticSpline::DxxNode::j":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DxxNodeE7integer7integer"],"Splines::BiQuinticSpline::Dxy":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline3DxyE9real_type9real_type"],"Splines::BiQuinticSpline::Dxy::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DxyE9real_type9real_type"],"Splines::BiQuinticSpline::Dxy::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DxyE9real_type9real_type"],"Splines::BiQuinticSpline::DxyNode":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline7DxyNodeE7integer7integer"],"Splines::BiQuinticSpline::DxyNode::i":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DxyNodeE7integer7integer"],"Splines::BiQuinticSpline::DxyNode::j":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DxyNodeE7integer7integer"],"Splines::BiQuinticSpline::Dy":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline2DyE9real_type9real_type"],"Splines::BiQuinticSpline::Dy::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DyE9real_type9real_type"],"Splines::BiQuinticSpline::Dy::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DyE9real_type9real_type"],"Splines::BiQuinticSpline::DyNode":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline6DyNodeE7integer7integer"],"Splines::BiQuinticSpline::DyNode::i":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline6DyNodeE7integer7integer"],"Splines::BiQuinticSpline::DyNode::j":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline6DyNodeE7integer7integer"],"Splines::BiQuinticSpline::Dyy":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline3DyyE9real_type9real_type"],"Splines::BiQuinticSpline::Dyy::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DyyE9real_type9real_type"],"Splines::BiQuinticSpline::Dyy::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DyyE9real_type9real_type"],"Splines::BiQuinticSpline::DyyNode":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline7DyyNodeE7integer7integer"],"Splines::BiQuinticSpline::DyyNode::i":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DyyNodeE7integer7integer"],"Splines::BiQuinticSpline::DyyNode::j":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DyyNodeE7integer7integer"],"Splines::BiQuinticSpline::build":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::build::fortran_storage":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::build::gc":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK16GenericContainer"],"Splines::BiQuinticSpline::build::incx":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSpline::build::incy":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSpline::build::ldZ":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSpline::build::nx":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiQuinticSpline::build::ny":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiQuinticSpline::build::transposed":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::build::x":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::build::y":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::build::z":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::clear":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline5clearEv"],"Splines::BiQuinticSpline::eval":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline4evalE9real_type9real_type"],"Splines::BiQuinticSpline::eval::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline4evalE9real_type9real_type"],"Splines::BiQuinticSpline::eval::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline4evalE9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_1":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_1::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_1::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_2":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_2::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_2::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2_2":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2_2::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2_2::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSpline::info":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline4infoEv"],"Splines::BiQuinticSpline::info::stream":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline4infoER12ostream_type"],"Splines::BiQuinticSpline::is_x_bounded":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline12is_x_boundedEv"],"Splines::BiQuinticSpline::is_x_closed":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline11is_x_closedEv"],"Splines::BiQuinticSpline::is_y_bounded":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline12is_y_boundedEv"],"Splines::BiQuinticSpline::is_y_closed":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline11is_y_closedEv"],"Splines::BiQuinticSpline::make_x_bounded":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline14make_x_boundedEv"],"Splines::BiQuinticSpline::make_x_closed":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline13make_x_closedEv"],"Splines::BiQuinticSpline::make_x_opened":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline13make_x_openedEv"],"Splines::BiQuinticSpline::make_x_unbounded":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline16make_x_unboundedEv"],"Splines::BiQuinticSpline::make_y_bounded":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline14make_y_boundedEv"],"Splines::BiQuinticSpline::make_y_closed":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline13make_y_closedEv"],"Splines::BiQuinticSpline::make_y_opened":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline13make_y_openedEv"],"Splines::BiQuinticSpline::make_y_unbounded":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline16make_y_unboundedEv"],"Splines::BiQuinticSpline::name":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline4nameEv"],"Splines::BiQuinticSpline::numPointX":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline9numPointXEv"],"Splines::BiQuinticSpline::numPointY":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline9numPointYEv"],"Splines::BiQuinticSpline::operator()":[32,2,1,"_CPPv4NK7Splines15BiQuinticSplineclE9real_type9real_type"],"Splines::BiQuinticSpline::operator()::x":[32,3,1,"_CPPv4NK7Splines15BiQuinticSplineclE9real_type9real_type"],"Splines::BiQuinticSpline::operator()::y":[32,3,1,"_CPPv4NK7Splines15BiQuinticSplineclE9real_type9real_type"],"Splines::BiQuinticSpline::setup":[32,2,1,"_CPPv4N7Splines15BiQuinticSpline5setupERK16GenericContainer"],"Splines::BiQuinticSpline::setup::gc":[32,3,1,"_CPPv4N7Splines15BiQuinticSpline5setupERK16GenericContainer"],"Splines::BiQuinticSpline::type_name":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline9type_nameEv"],"Splines::BiQuinticSpline::writeToStream":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline13writeToStreamER12ostream_type"],"Splines::BiQuinticSpline::writeToStream::s":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline13writeToStreamER12ostream_type"],"Splines::BiQuinticSpline::xMax":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline4xMaxEv"],"Splines::BiQuinticSpline::xMin":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline4xMinEv"],"Splines::BiQuinticSpline::xNode":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline5xNodeE7integer"],"Splines::BiQuinticSpline::xNode::i":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline5xNodeE7integer"],"Splines::BiQuinticSpline::yMax":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline4yMaxEv"],"Splines::BiQuinticSpline::yMin":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline4yMinEv"],"Splines::BiQuinticSpline::yNode":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline5yNodeE7integer"],"Splines::BiQuinticSpline::yNode::i":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline5yNodeE7integer"],"Splines::BiQuinticSpline::zMax":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline4zMaxEv"],"Splines::BiQuinticSpline::zMin":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline4zMinEv"],"Splines::BiQuinticSpline::zNode":[32,2,1,"_CPPv4NK7Splines15BiQuinticSpline5zNodeE7integer7integer"],"Splines::BiQuinticSpline::zNode::i":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline5zNodeE7integer7integer"],"Splines::BiQuinticSpline::zNode::j":[32,3,1,"_CPPv4NK7Splines15BiQuinticSpline5zNodeE7integer7integer"],"Splines::BiQuinticSpline::~BiQuinticSpline":[32,2,1,"_CPPv4N7Splines15BiQuinticSplineD0Ev"],"Splines::BiQuinticSplineBase":[33,1,1,"_CPPv4N7Splines19BiQuinticSplineBaseE"],"Splines::BiQuinticSplineBase::BiQuinticSplineBase":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase19BiQuinticSplineBaseERK6string"],"Splines::BiQuinticSplineBase::BiQuinticSplineBase::name":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase19BiQuinticSplineBaseERK6string"],"Splines::BiQuinticSplineBase::D":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSplineBase::D::d":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSplineBase::D::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSplineBase::D::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSplineBase::DD":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSplineBase::DD::dd":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSplineBase::DD::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSplineBase::DD::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSplineBase::Dx":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DxE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dx::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DxE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dx::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DxE9real_type9real_type"],"Splines::BiQuinticSplineBase::DxNode":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxNode::i":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxNode::j":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::Dxx":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxxE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dxx::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxxE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dxx::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxxE9real_type9real_type"],"Splines::BiQuinticSplineBase::DxxNode":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxxNode::i":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxxNode::j":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::Dxy":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dxy::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dxy::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxyE9real_type9real_type"],"Splines::BiQuinticSplineBase::DxyNode":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxyNode::i":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxyNode::j":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::Dy":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dy::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dy::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DyE9real_type9real_type"],"Splines::BiQuinticSplineBase::DyNode":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DyNode::i":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DyNode::j":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::Dyy":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DyyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dyy::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DyyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dyy::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DyyE9real_type9real_type"],"Splines::BiQuinticSplineBase::DyyNode":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DyyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DyyNode::i":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DyyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DyyNode::j":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DyyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::build":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::build::fortran_storage":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::build::gc":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK16GenericContainer"],"Splines::BiQuinticSplineBase::build::incx":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSplineBase::build::incy":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSplineBase::build::ldZ":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSplineBase::build::nx":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiQuinticSplineBase::build::ny":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiQuinticSplineBase::build::transposed":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::build::x":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::build::y":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::build::z":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::clear":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase5clearEv"],"Splines::BiQuinticSplineBase::eval":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4evalE9real_type9real_type"],"Splines::BiQuinticSplineBase::eval::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase4evalE9real_type9real_type"],"Splines::BiQuinticSplineBase::eval::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase4evalE9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_1":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_1::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_1::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_2":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_2::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_2::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2_2":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2_2::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2_2::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::info":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4infoEv"],"Splines::BiQuinticSplineBase::info::stream":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase4infoER12ostream_type"],"Splines::BiQuinticSplineBase::is_x_bounded":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase12is_x_boundedEv"],"Splines::BiQuinticSplineBase::is_x_closed":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase11is_x_closedEv"],"Splines::BiQuinticSplineBase::is_y_bounded":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase12is_y_boundedEv"],"Splines::BiQuinticSplineBase::is_y_closed":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase11is_y_closedEv"],"Splines::BiQuinticSplineBase::make_x_bounded":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase14make_x_boundedEv"],"Splines::BiQuinticSplineBase::make_x_closed":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase13make_x_closedEv"],"Splines::BiQuinticSplineBase::make_x_opened":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase13make_x_openedEv"],"Splines::BiQuinticSplineBase::make_x_unbounded":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase16make_x_unboundedEv"],"Splines::BiQuinticSplineBase::make_y_bounded":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase14make_y_boundedEv"],"Splines::BiQuinticSplineBase::make_y_closed":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase13make_y_closedEv"],"Splines::BiQuinticSplineBase::make_y_opened":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase13make_y_openedEv"],"Splines::BiQuinticSplineBase::make_y_unbounded":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase16make_y_unboundedEv"],"Splines::BiQuinticSplineBase::name":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4nameEv"],"Splines::BiQuinticSplineBase::numPointX":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase9numPointXEv"],"Splines::BiQuinticSplineBase::numPointY":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase9numPointYEv"],"Splines::BiQuinticSplineBase::operator()":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBaseclE9real_type9real_type"],"Splines::BiQuinticSplineBase::operator()::x":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBaseclE9real_type9real_type"],"Splines::BiQuinticSplineBase::operator()::y":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBaseclE9real_type9real_type"],"Splines::BiQuinticSplineBase::setup":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBase5setupERK16GenericContainer"],"Splines::BiQuinticSplineBase::setup::gc":[33,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5setupERK16GenericContainer"],"Splines::BiQuinticSplineBase::type_name":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase9type_nameEv"],"Splines::BiQuinticSplineBase::writeToStream":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase13writeToStreamER12ostream_type"],"Splines::BiQuinticSplineBase::writeToStream::s":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase13writeToStreamER12ostream_type"],"Splines::BiQuinticSplineBase::xMax":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4xMaxEv"],"Splines::BiQuinticSplineBase::xMin":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4xMinEv"],"Splines::BiQuinticSplineBase::xNode":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase5xNodeE7integer"],"Splines::BiQuinticSplineBase::xNode::i":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase5xNodeE7integer"],"Splines::BiQuinticSplineBase::yMax":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4yMaxEv"],"Splines::BiQuinticSplineBase::yMin":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4yMinEv"],"Splines::BiQuinticSplineBase::yNode":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase5yNodeE7integer"],"Splines::BiQuinticSplineBase::yNode::i":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase5yNodeE7integer"],"Splines::BiQuinticSplineBase::zMax":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4zMaxEv"],"Splines::BiQuinticSplineBase::zMin":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4zMinEv"],"Splines::BiQuinticSplineBase::zNode":[33,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase5zNodeE7integer7integer"],"Splines::BiQuinticSplineBase::zNode::i":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase5zNodeE7integer7integer"],"Splines::BiQuinticSplineBase::zNode::j":[33,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase5zNodeE7integer7integer"],"Splines::BiQuinticSplineBase::~BiQuinticSplineBase":[33,2,1,"_CPPv4N7Splines19BiQuinticSplineBaseD0Ev"],"Splines::BilinearSpline":[34,1,1,"_CPPv4N7Splines14BilinearSplineE"],"Splines::BilinearSpline::BilinearSpline":[34,2,1,"_CPPv4N7Splines14BilinearSpline14BilinearSplineERK6string"],"Splines::BilinearSpline::BilinearSpline::name":[34,3,1,"_CPPv4N7Splines14BilinearSpline14BilinearSplineERK6string"],"Splines::BilinearSpline::D":[34,2,1,"_CPPv4NK7Splines14BilinearSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BilinearSpline::D::d":[34,3,1,"_CPPv4NK7Splines14BilinearSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BilinearSpline::D::x":[34,3,1,"_CPPv4NK7Splines14BilinearSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BilinearSpline::D::y":[34,3,1,"_CPPv4NK7Splines14BilinearSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BilinearSpline::DD":[34,2,1,"_CPPv4NK7Splines14BilinearSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BilinearSpline::DD::dd":[34,3,1,"_CPPv4NK7Splines14BilinearSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BilinearSpline::DD::x":[34,3,1,"_CPPv4NK7Splines14BilinearSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BilinearSpline::DD::y":[34,3,1,"_CPPv4NK7Splines14BilinearSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BilinearSpline::Dx":[34,2,1,"_CPPv4NK7Splines14BilinearSpline2DxE9real_type9real_type"],"Splines::BilinearSpline::Dx::x":[34,3,1,"_CPPv4NK7Splines14BilinearSpline2DxE9real_type9real_type"],"Splines::BilinearSpline::Dx::y":[34,3,1,"_CPPv4NK7Splines14BilinearSpline2DxE9real_type9real_type"],"Splines::BilinearSpline::Dxx":[34,2,1,"_CPPv4NK7Splines14BilinearSpline3DxxE9real_type9real_type"],"Splines::BilinearSpline::Dxy":[34,2,1,"_CPPv4NK7Splines14BilinearSpline3DxyE9real_type9real_type"],"Splines::BilinearSpline::Dy":[34,2,1,"_CPPv4NK7Splines14BilinearSpline2DyE9real_type9real_type"],"Splines::BilinearSpline::Dy::x":[34,3,1,"_CPPv4NK7Splines14BilinearSpline2DyE9real_type9real_type"],"Splines::BilinearSpline::Dy::y":[34,3,1,"_CPPv4NK7Splines14BilinearSpline2DyE9real_type9real_type"],"Splines::BilinearSpline::Dyy":[34,2,1,"_CPPv4NK7Splines14BilinearSpline3DyyE9real_type9real_type"],"Splines::BilinearSpline::build":[34,2,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::build::fortran_storage":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::build::gc":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK16GenericContainer"],"Splines::BilinearSpline::build::incx":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BilinearSpline::build::incy":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BilinearSpline::build::ldZ":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BilinearSpline::build::nx":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BilinearSpline::build::ny":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BilinearSpline::build::transposed":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::build::x":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::build::y":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::build::z":[34,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::clear":[34,2,1,"_CPPv4N7Splines14BilinearSpline5clearEv"],"Splines::BilinearSpline::eval":[34,2,1,"_CPPv4NK7Splines14BilinearSpline4evalE9real_type9real_type"],"Splines::BilinearSpline::eval::x":[34,3,1,"_CPPv4NK7Splines14BilinearSpline4evalE9real_type9real_type"],"Splines::BilinearSpline::eval::y":[34,3,1,"_CPPv4NK7Splines14BilinearSpline4evalE9real_type9real_type"],"Splines::BilinearSpline::eval_D_1":[34,2,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1::x":[34,3,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1::y":[34,3,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_1":[34,2,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_1::x":[34,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_1::y":[34,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_2":[34,2,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_2::x":[34,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_2::y":[34,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2":[34,2,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2::x":[34,3,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2::y":[34,3,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2_2":[34,2,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_2_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2_2::x":[34,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_2_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2_2::y":[34,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_2_2E9real_type9real_type"],"Splines::BilinearSpline::info":[34,2,1,"_CPPv4NK7Splines14BilinearSpline4infoEv"],"Splines::BilinearSpline::info::stream":[34,3,1,"_CPPv4NK7Splines14BilinearSpline4infoER12ostream_type"],"Splines::BilinearSpline::is_x_bounded":[34,2,1,"_CPPv4NK7Splines14BilinearSpline12is_x_boundedEv"],"Splines::BilinearSpline::is_x_closed":[34,2,1,"_CPPv4NK7Splines14BilinearSpline11is_x_closedEv"],"Splines::BilinearSpline::is_y_bounded":[34,2,1,"_CPPv4NK7Splines14BilinearSpline12is_y_boundedEv"],"Splines::BilinearSpline::is_y_closed":[34,2,1,"_CPPv4NK7Splines14BilinearSpline11is_y_closedEv"],"Splines::BilinearSpline::make_x_bounded":[34,2,1,"_CPPv4N7Splines14BilinearSpline14make_x_boundedEv"],"Splines::BilinearSpline::make_x_closed":[34,2,1,"_CPPv4N7Splines14BilinearSpline13make_x_closedEv"],"Splines::BilinearSpline::make_x_opened":[34,2,1,"_CPPv4N7Splines14BilinearSpline13make_x_openedEv"],"Splines::BilinearSpline::make_x_unbounded":[34,2,1,"_CPPv4N7Splines14BilinearSpline16make_x_unboundedEv"],"Splines::BilinearSpline::make_y_bounded":[34,2,1,"_CPPv4N7Splines14BilinearSpline14make_y_boundedEv"],"Splines::BilinearSpline::make_y_closed":[34,2,1,"_CPPv4N7Splines14BilinearSpline13make_y_closedEv"],"Splines::BilinearSpline::make_y_opened":[34,2,1,"_CPPv4N7Splines14BilinearSpline13make_y_openedEv"],"Splines::BilinearSpline::make_y_unbounded":[34,2,1,"_CPPv4N7Splines14BilinearSpline16make_y_unboundedEv"],"Splines::BilinearSpline::name":[34,2,1,"_CPPv4NK7Splines14BilinearSpline4nameEv"],"Splines::BilinearSpline::numPointX":[34,2,1,"_CPPv4NK7Splines14BilinearSpline9numPointXEv"],"Splines::BilinearSpline::numPointY":[34,2,1,"_CPPv4NK7Splines14BilinearSpline9numPointYEv"],"Splines::BilinearSpline::operator()":[34,2,1,"_CPPv4NK7Splines14BilinearSplineclE9real_type9real_type"],"Splines::BilinearSpline::operator()::x":[34,3,1,"_CPPv4NK7Splines14BilinearSplineclE9real_type9real_type"],"Splines::BilinearSpline::operator()::y":[34,3,1,"_CPPv4NK7Splines14BilinearSplineclE9real_type9real_type"],"Splines::BilinearSpline::setup":[34,2,1,"_CPPv4N7Splines14BilinearSpline5setupERK16GenericContainer"],"Splines::BilinearSpline::setup::gc":[34,3,1,"_CPPv4N7Splines14BilinearSpline5setupERK16GenericContainer"],"Splines::BilinearSpline::type_name":[34,2,1,"_CPPv4NK7Splines14BilinearSpline9type_nameEv"],"Splines::BilinearSpline::writeToStream":[34,2,1,"_CPPv4NK7Splines14BilinearSpline13writeToStreamER12ostream_type"],"Splines::BilinearSpline::writeToStream::s":[34,3,1,"_CPPv4NK7Splines14BilinearSpline13writeToStreamER12ostream_type"],"Splines::BilinearSpline::xMax":[34,2,1,"_CPPv4NK7Splines14BilinearSpline4xMaxEv"],"Splines::BilinearSpline::xMin":[34,2,1,"_CPPv4NK7Splines14BilinearSpline4xMinEv"],"Splines::BilinearSpline::xNode":[34,2,1,"_CPPv4NK7Splines14BilinearSpline5xNodeE7integer"],"Splines::BilinearSpline::xNode::i":[34,3,1,"_CPPv4NK7Splines14BilinearSpline5xNodeE7integer"],"Splines::BilinearSpline::yMax":[34,2,1,"_CPPv4NK7Splines14BilinearSpline4yMaxEv"],"Splines::BilinearSpline::yMin":[34,2,1,"_CPPv4NK7Splines14BilinearSpline4yMinEv"],"Splines::BilinearSpline::yNode":[34,2,1,"_CPPv4NK7Splines14BilinearSpline5yNodeE7integer"],"Splines::BilinearSpline::yNode::i":[34,3,1,"_CPPv4NK7Splines14BilinearSpline5yNodeE7integer"],"Splines::BilinearSpline::zMax":[34,2,1,"_CPPv4NK7Splines14BilinearSpline4zMaxEv"],"Splines::BilinearSpline::zMin":[34,2,1,"_CPPv4NK7Splines14BilinearSpline4zMinEv"],"Splines::BilinearSpline::zNode":[34,2,1,"_CPPv4NK7Splines14BilinearSpline5zNodeE7integer7integer"],"Splines::BilinearSpline::zNode::i":[34,3,1,"_CPPv4NK7Splines14BilinearSpline5zNodeE7integer7integer"],"Splines::BilinearSpline::zNode::j":[34,3,1,"_CPPv4NK7Splines14BilinearSpline5zNodeE7integer7integer"],"Splines::BilinearSpline::~BilinearSpline":[34,2,1,"_CPPv4N7Splines14BilinearSplineD0Ev"],"Splines::CONSTANT_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D13CONSTANT_TYPEE"],"Splines::CUBIC_QUINTIC":[58,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13CUBIC_QUINTICE"],"Splines::CUBIC_SPLINE_TYPE_BC":[56,5,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BCE"],"Splines::CUBIC_SPLINE_TYPE_BC::EXTRAPOLATE_BC":[56,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC14EXTRAPOLATE_BCE"],"Splines::CUBIC_SPLINE_TYPE_BC::NATURAL_BC":[56,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC10NATURAL_BCE"],"Splines::CUBIC_SPLINE_TYPE_BC::NOT_A_KNOT":[56,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC10NOT_A_KNOTE"],"Splines::CUBIC_SPLINE_TYPE_BC::PARABOLIC_RUNOUT_BC":[56,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC19PARABOLIC_RUNOUT_BCE"],"Splines::CUBIC_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D10CUBIC_TYPEE"],"Splines::ConstantSpline":[35,1,1,"_CPPv4N7Splines14ConstantSplineE"],"Splines::ConstantSpline::ConstantSpline":[35,2,1,"_CPPv4N7Splines14ConstantSpline14ConstantSplineERK6string"],"Splines::ConstantSpline::ConstantSpline::name":[35,3,1,"_CPPv4N7Splines14ConstantSpline14ConstantSplineERK6string"],"Splines::ConstantSpline::D":[35,2,1,"_CPPv4NK7Splines14ConstantSpline1DE9real_type"],"Splines::ConstantSpline::DD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline2DDE9real_type"],"Splines::ConstantSpline::DDD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline3DDDE9real_type"],"Splines::ConstantSpline::DDDD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4DDDDE9real_type"],"Splines::ConstantSpline::DDDDD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline5DDDDDE9real_type"],"Splines::ConstantSpline::build":[35,2,1,"_CPPv4N7Splines14ConstantSpline5buildEv"],"Splines::ConstantSpline::build::gc":[35,3,1,"_CPPv4N7Splines14ConstantSpline5buildERK16GenericContainer"],"Splines::ConstantSpline::build::incx":[35,3,1,"_CPPv4N7Splines14ConstantSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::ConstantSpline::build::incy":[35,3,1,"_CPPv4N7Splines14ConstantSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::ConstantSpline::build::n":[35,3,1,"_CPPv4N7Splines14ConstantSpline5buildEPK9real_typePK9real_type7integer"],"Splines::ConstantSpline::build::x":[35,3,1,"_CPPv4N7Splines14ConstantSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::ConstantSpline::build::y":[35,3,1,"_CPPv4N7Splines14ConstantSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::ConstantSpline::clear":[35,2,1,"_CPPv4N7Splines14ConstantSpline5clearEv"],"Splines::ConstantSpline::coeffs":[35,2,1,"_CPPv4NK7Splines14ConstantSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::ConstantSpline::coeffs::cfs":[35,3,1,"_CPPv4NK7Splines14ConstantSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::ConstantSpline::coeffs::nodes":[35,3,1,"_CPPv4NK7Splines14ConstantSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::ConstantSpline::coeffs::transpose":[35,3,1,"_CPPv4NK7Splines14ConstantSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::ConstantSpline::dropBack":[35,2,1,"_CPPv4N7Splines14ConstantSpline8dropBackEv"],"Splines::ConstantSpline::dump":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4dumpER12ostream_type7integerPKc"],"Splines::ConstantSpline::dump::fname":[35,3,1,"_CPPv4NK7Splines14ConstantSpline4dumpEPKc7integerPKc"],"Splines::ConstantSpline::dump::header":[35,3,1,"_CPPv4NK7Splines14ConstantSpline4dumpER12ostream_type7integerPKc"],"Splines::ConstantSpline::dump::nintervals":[35,3,1,"_CPPv4NK7Splines14ConstantSpline4dumpER12ostream_type7integerPKc"],"Splines::ConstantSpline::dump::s":[35,3,1,"_CPPv4NK7Splines14ConstantSpline4dumpER12ostream_type7integerPKc"],"Splines::ConstantSpline::eval":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4evalE9real_type"],"Splines::ConstantSpline::eval::x":[35,3,1,"_CPPv4NK7Splines14ConstantSpline4evalE9real_type"],"Splines::ConstantSpline::eval_D":[35,2,1,"_CPPv4NK7Splines14ConstantSpline6eval_DE9real_type"],"Splines::ConstantSpline::eval_D::x":[35,3,1,"_CPPv4NK7Splines14ConstantSpline6eval_DE9real_type"],"Splines::ConstantSpline::eval_DD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline7eval_DDE9real_type"],"Splines::ConstantSpline::eval_DD::x":[35,3,1,"_CPPv4NK7Splines14ConstantSpline7eval_DDE9real_type"],"Splines::ConstantSpline::eval_DDD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline8eval_DDDE9real_type"],"Splines::ConstantSpline::eval_DDD::x":[35,3,1,"_CPPv4NK7Splines14ConstantSpline8eval_DDDE9real_type"],"Splines::ConstantSpline::eval_DDDD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline9eval_DDDDE9real_type"],"Splines::ConstantSpline::eval_DDDD::x":[35,3,1,"_CPPv4NK7Splines14ConstantSpline9eval_DDDDE9real_type"],"Splines::ConstantSpline::eval_DDDDD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline10eval_DDDDDE9real_type"],"Splines::ConstantSpline::eval_DDDDD::x":[35,3,1,"_CPPv4NK7Splines14ConstantSpline10eval_DDDDDE9real_type"],"Splines::ConstantSpline::id_D":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4id_DE7integer9real_type"],"Splines::ConstantSpline::id_DD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline5id_DDE7integer9real_type"],"Splines::ConstantSpline::id_DDD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline6id_DDDE7integer9real_type"],"Splines::ConstantSpline::id_DDDD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline7id_DDDDE7integer9real_type"],"Splines::ConstantSpline::id_DDDDD":[35,2,1,"_CPPv4NK7Splines14ConstantSpline8id_DDDDDE7integer9real_type"],"Splines::ConstantSpline::id_eval":[35,2,1,"_CPPv4NK7Splines14ConstantSpline7id_evalE7integer9real_type"],"Splines::ConstantSpline::id_eval::ni":[35,3,1,"_CPPv4NK7Splines14ConstantSpline7id_evalE7integer9real_type"],"Splines::ConstantSpline::id_eval::x":[35,3,1,"_CPPv4NK7Splines14ConstantSpline7id_evalE7integer9real_type"],"Splines::ConstantSpline::info":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4infoEv"],"Splines::ConstantSpline::info::stream":[35,3,1,"_CPPv4NK7Splines14ConstantSpline4infoER12ostream_type"],"Splines::ConstantSpline::is_bounded":[35,2,1,"_CPPv4NK7Splines14ConstantSpline10is_boundedEv"],"Splines::ConstantSpline::is_closed":[35,2,1,"_CPPv4NK7Splines14ConstantSpline9is_closedEv"],"Splines::ConstantSpline::is_extended_constant":[35,2,1,"_CPPv4NK7Splines14ConstantSpline20is_extended_constantEv"],"Splines::ConstantSpline::make_bounded":[35,2,1,"_CPPv4N7Splines14ConstantSpline12make_boundedEv"],"Splines::ConstantSpline::make_closed":[35,2,1,"_CPPv4N7Splines14ConstantSpline11make_closedEv"],"Splines::ConstantSpline::make_extended_constant":[35,2,1,"_CPPv4N7Splines14ConstantSpline22make_extended_constantEv"],"Splines::ConstantSpline::make_extended_not_constant":[35,2,1,"_CPPv4N7Splines14ConstantSpline26make_extended_not_constantEv"],"Splines::ConstantSpline::make_opened":[35,2,1,"_CPPv4N7Splines14ConstantSpline11make_openedEv"],"Splines::ConstantSpline::make_unbounded":[35,2,1,"_CPPv4N7Splines14ConstantSpline14make_unboundedEv"],"Splines::ConstantSpline::name":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4nameEv"],"Splines::ConstantSpline::numPoints":[35,2,1,"_CPPv4NK7Splines14ConstantSpline9numPointsEv"],"Splines::ConstantSpline::operator()":[35,2,1,"_CPPv4NK7Splines14ConstantSplineclE9real_type"],"Splines::ConstantSpline::operator()::x":[35,3,1,"_CPPv4NK7Splines14ConstantSplineclE9real_type"],"Splines::ConstantSpline::order":[35,2,1,"_CPPv4NK7Splines14ConstantSpline5orderEv"],"Splines::ConstantSpline::pushBack":[35,2,1,"_CPPv4N7Splines14ConstantSpline8pushBackE9real_type9real_type"],"Splines::ConstantSpline::pushBack::x":[35,3,1,"_CPPv4N7Splines14ConstantSpline8pushBackE9real_type9real_type"],"Splines::ConstantSpline::pushBack::y":[35,3,1,"_CPPv4N7Splines14ConstantSpline8pushBackE9real_type9real_type"],"Splines::ConstantSpline::reserve":[35,2,1,"_CPPv4N7Splines14ConstantSpline7reserveE7integer"],"Splines::ConstantSpline::reserve::npts":[35,3,1,"_CPPv4N7Splines14ConstantSpline7reserveE7integer"],"Splines::ConstantSpline::reserve_external":[35,2,1,"_CPPv4N7Splines14ConstantSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::ConstantSpline::reserve_external::n":[35,3,1,"_CPPv4N7Splines14ConstantSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::ConstantSpline::reserve_external::p_x":[35,3,1,"_CPPv4N7Splines14ConstantSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::ConstantSpline::reserve_external::p_y":[35,3,1,"_CPPv4N7Splines14ConstantSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::ConstantSpline::search":[35,2,1,"_CPPv4NK7Splines14ConstantSpline6searchER9real_type"],"Splines::ConstantSpline::search::x":[35,3,1,"_CPPv4NK7Splines14ConstantSpline6searchER9real_type"],"Splines::ConstantSpline::setOrigin":[35,2,1,"_CPPv4N7Splines14ConstantSpline9setOriginE9real_type"],"Splines::ConstantSpline::setOrigin::x0":[35,3,1,"_CPPv4N7Splines14ConstantSpline9setOriginE9real_type"],"Splines::ConstantSpline::setRange":[35,2,1,"_CPPv4N7Splines14ConstantSpline8setRangeE9real_type9real_type"],"Splines::ConstantSpline::setRange::xmax":[35,3,1,"_CPPv4N7Splines14ConstantSpline8setRangeE9real_type9real_type"],"Splines::ConstantSpline::setRange::xmin":[35,3,1,"_CPPv4N7Splines14ConstantSpline8setRangeE9real_type9real_type"],"Splines::ConstantSpline::setup":[35,2,1,"_CPPv4N7Splines14ConstantSpline5setupERK16GenericContainer"],"Splines::ConstantSpline::setup::gc":[35,3,1,"_CPPv4N7Splines14ConstantSpline5setupERK16GenericContainer"],"Splines::ConstantSpline::type":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4typeEv"],"Splines::ConstantSpline::type_name":[35,2,1,"_CPPv4NK7Splines14ConstantSpline9type_nameEv"],"Splines::ConstantSpline::writeToStream":[35,2,1,"_CPPv4NK7Splines14ConstantSpline13writeToStreamER12ostream_type"],"Splines::ConstantSpline::xBegin":[35,2,1,"_CPPv4NK7Splines14ConstantSpline6xBeginEv"],"Splines::ConstantSpline::xEnd":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4xEndEv"],"Splines::ConstantSpline::xMax":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4xMaxEv"],"Splines::ConstantSpline::xMin":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4xMinEv"],"Splines::ConstantSpline::xNode":[35,2,1,"_CPPv4NK7Splines14ConstantSpline5xNodeE7integer"],"Splines::ConstantSpline::xNode::i":[35,3,1,"_CPPv4NK7Splines14ConstantSpline5xNodeE7integer"],"Splines::ConstantSpline::yBegin":[35,2,1,"_CPPv4NK7Splines14ConstantSpline6yBeginEv"],"Splines::ConstantSpline::yEnd":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4yEndEv"],"Splines::ConstantSpline::yMax":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4yMaxEv"],"Splines::ConstantSpline::yMin":[35,2,1,"_CPPv4NK7Splines14ConstantSpline4yMinEv"],"Splines::ConstantSpline::yNode":[35,2,1,"_CPPv4NK7Splines14ConstantSpline5yNodeE7integer"],"Splines::ConstantSpline::yNode::i":[35,3,1,"_CPPv4NK7Splines14ConstantSpline5yNodeE7integer"],"Splines::ConstantSpline::~ConstantSpline":[35,2,1,"_CPPv4N7Splines14ConstantSplineD0Ev"],"Splines::CubicSpline":[36,1,1,"_CPPv4N7Splines11CubicSplineE"],"Splines::CubicSpline::CubicSpline":[36,2,1,"_CPPv4N7Splines11CubicSpline11CubicSplineERK6string"],"Splines::CubicSpline::CubicSpline::name":[36,3,1,"_CPPv4N7Splines11CubicSpline11CubicSplineERK6string"],"Splines::CubicSpline::D":[36,2,1,"_CPPv4NK7Splines11CubicSpline1DE9real_type"],"Splines::CubicSpline::D::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline1DE9real_type"],"Splines::CubicSpline::DD":[36,2,1,"_CPPv4NK7Splines11CubicSpline2DDE9real_type"],"Splines::CubicSpline::DD::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline2DDE9real_type"],"Splines::CubicSpline::DDD":[36,2,1,"_CPPv4NK7Splines11CubicSpline3DDDE9real_type"],"Splines::CubicSpline::DDD::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline3DDDE9real_type"],"Splines::CubicSpline::DDDD":[36,2,1,"_CPPv4NK7Splines11CubicSpline4DDDDE9real_type"],"Splines::CubicSpline::DDDDD":[36,2,1,"_CPPv4NK7Splines11CubicSpline5DDDDDE9real_type"],"Splines::CubicSpline::build":[36,2,1,"_CPPv4N7Splines11CubicSpline5buildEv"],"Splines::CubicSpline::build::gc":[36,3,1,"_CPPv4N7Splines11CubicSpline5buildERK16GenericContainer"],"Splines::CubicSpline::build::incx":[36,3,1,"_CPPv4N7Splines11CubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSpline::build::incy":[36,3,1,"_CPPv4N7Splines11CubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSpline::build::incyp":[36,3,1,"_CPPv4N7Splines11CubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSpline::build::n":[36,3,1,"_CPPv4N7Splines11CubicSpline5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::CubicSpline::build::x":[36,3,1,"_CPPv4N7Splines11CubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSpline::build::y":[36,3,1,"_CPPv4N7Splines11CubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSpline::build::yp":[36,3,1,"_CPPv4N7Splines11CubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSpline::clear":[36,2,1,"_CPPv4N7Splines11CubicSpline5clearEv"],"Splines::CubicSpline::coeffs":[36,2,1,"_CPPv4NK7Splines11CubicSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSpline::coeffs::cfs":[36,3,1,"_CPPv4NK7Splines11CubicSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSpline::coeffs::nodes":[36,3,1,"_CPPv4NK7Splines11CubicSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSpline::coeffs::transpose":[36,3,1,"_CPPv4NK7Splines11CubicSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSpline::copySpline":[36,2,1,"_CPPv4N7Splines11CubicSpline10copySplineERK15CubicSplineBase"],"Splines::CubicSpline::copySpline::S":[36,3,1,"_CPPv4N7Splines11CubicSpline10copySplineERK15CubicSplineBase"],"Splines::CubicSpline::dropBack":[36,2,1,"_CPPv4N7Splines11CubicSpline8dropBackEv"],"Splines::CubicSpline::dump":[36,2,1,"_CPPv4NK7Splines11CubicSpline4dumpER12ostream_type7integerPKc"],"Splines::CubicSpline::dump::fname":[36,3,1,"_CPPv4NK7Splines11CubicSpline4dumpEPKc7integerPKc"],"Splines::CubicSpline::dump::header":[36,3,1,"_CPPv4NK7Splines11CubicSpline4dumpER12ostream_type7integerPKc"],"Splines::CubicSpline::dump::nintervals":[36,3,1,"_CPPv4NK7Splines11CubicSpline4dumpER12ostream_type7integerPKc"],"Splines::CubicSpline::dump::s":[36,3,1,"_CPPv4NK7Splines11CubicSpline4dumpER12ostream_type7integerPKc"],"Splines::CubicSpline::eval":[36,2,1,"_CPPv4NK7Splines11CubicSpline4evalE9real_type"],"Splines::CubicSpline::eval::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline4evalE9real_type"],"Splines::CubicSpline::eval_D":[36,2,1,"_CPPv4NK7Splines11CubicSpline6eval_DE9real_type"],"Splines::CubicSpline::eval_D::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline6eval_DE9real_type"],"Splines::CubicSpline::eval_DD":[36,2,1,"_CPPv4NK7Splines11CubicSpline7eval_DDE9real_type"],"Splines::CubicSpline::eval_DD::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline7eval_DDE9real_type"],"Splines::CubicSpline::eval_DDD":[36,2,1,"_CPPv4NK7Splines11CubicSpline8eval_DDDE9real_type"],"Splines::CubicSpline::eval_DDD::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline8eval_DDDE9real_type"],"Splines::CubicSpline::eval_DDDD":[36,2,1,"_CPPv4NK7Splines11CubicSpline9eval_DDDDE9real_type"],"Splines::CubicSpline::eval_DDDD::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline9eval_DDDDE9real_type"],"Splines::CubicSpline::eval_DDDDD":[36,2,1,"_CPPv4NK7Splines11CubicSpline10eval_DDDDDE9real_type"],"Splines::CubicSpline::eval_DDDDD::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline10eval_DDDDDE9real_type"],"Splines::CubicSpline::id_D":[36,2,1,"_CPPv4NK7Splines11CubicSpline4id_DE7integer9real_type"],"Splines::CubicSpline::id_D::ni":[36,3,1,"_CPPv4NK7Splines11CubicSpline4id_DE7integer9real_type"],"Splines::CubicSpline::id_D::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline4id_DE7integer9real_type"],"Splines::CubicSpline::id_DD":[36,2,1,"_CPPv4NK7Splines11CubicSpline5id_DDE7integer9real_type"],"Splines::CubicSpline::id_DD::ni":[36,3,1,"_CPPv4NK7Splines11CubicSpline5id_DDE7integer9real_type"],"Splines::CubicSpline::id_DD::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline5id_DDE7integer9real_type"],"Splines::CubicSpline::id_DDD":[36,2,1,"_CPPv4NK7Splines11CubicSpline6id_DDDE7integer9real_type"],"Splines::CubicSpline::id_DDD::ni":[36,3,1,"_CPPv4NK7Splines11CubicSpline6id_DDDE7integer9real_type"],"Splines::CubicSpline::id_DDD::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline6id_DDDE7integer9real_type"],"Splines::CubicSpline::id_DDDD":[36,2,1,"_CPPv4NK7Splines11CubicSpline7id_DDDDE7integer9real_type"],"Splines::CubicSpline::id_DDDDD":[36,2,1,"_CPPv4NK7Splines11CubicSpline8id_DDDDDE7integer9real_type"],"Splines::CubicSpline::id_eval":[36,2,1,"_CPPv4NK7Splines11CubicSpline7id_evalE7integer9real_type"],"Splines::CubicSpline::id_eval::ni":[36,3,1,"_CPPv4NK7Splines11CubicSpline7id_evalE7integer9real_type"],"Splines::CubicSpline::id_eval::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline7id_evalE7integer9real_type"],"Splines::CubicSpline::info":[36,2,1,"_CPPv4NK7Splines11CubicSpline4infoEv"],"Splines::CubicSpline::info::stream":[36,3,1,"_CPPv4NK7Splines11CubicSpline4infoER12ostream_type"],"Splines::CubicSpline::is_bounded":[36,2,1,"_CPPv4NK7Splines11CubicSpline10is_boundedEv"],"Splines::CubicSpline::is_closed":[36,2,1,"_CPPv4NK7Splines11CubicSpline9is_closedEv"],"Splines::CubicSpline::is_extended_constant":[36,2,1,"_CPPv4NK7Splines11CubicSpline20is_extended_constantEv"],"Splines::CubicSpline::make_bounded":[36,2,1,"_CPPv4N7Splines11CubicSpline12make_boundedEv"],"Splines::CubicSpline::make_closed":[36,2,1,"_CPPv4N7Splines11CubicSpline11make_closedEv"],"Splines::CubicSpline::make_extended_constant":[36,2,1,"_CPPv4N7Splines11CubicSpline22make_extended_constantEv"],"Splines::CubicSpline::make_extended_not_constant":[36,2,1,"_CPPv4N7Splines11CubicSpline26make_extended_not_constantEv"],"Splines::CubicSpline::make_opened":[36,2,1,"_CPPv4N7Splines11CubicSpline11make_openedEv"],"Splines::CubicSpline::make_unbounded":[36,2,1,"_CPPv4N7Splines11CubicSpline14make_unboundedEv"],"Splines::CubicSpline::name":[36,2,1,"_CPPv4NK7Splines11CubicSpline4nameEv"],"Splines::CubicSpline::numPoints":[36,2,1,"_CPPv4NK7Splines11CubicSpline9numPointsEv"],"Splines::CubicSpline::operator()":[36,2,1,"_CPPv4NK7Splines11CubicSplineclE9real_type"],"Splines::CubicSpline::operator()::x":[36,3,1,"_CPPv4NK7Splines11CubicSplineclE9real_type"],"Splines::CubicSpline::order":[36,2,1,"_CPPv4NK7Splines11CubicSpline5orderEv"],"Splines::CubicSpline::pushBack":[36,2,1,"_CPPv4N7Splines11CubicSpline8pushBackE9real_type9real_type"],"Splines::CubicSpline::pushBack::x":[36,3,1,"_CPPv4N7Splines11CubicSpline8pushBackE9real_type9real_type"],"Splines::CubicSpline::pushBack::y":[36,3,1,"_CPPv4N7Splines11CubicSpline8pushBackE9real_type9real_type"],"Splines::CubicSpline::reserve":[36,2,1,"_CPPv4N7Splines11CubicSpline7reserveE7integer"],"Splines::CubicSpline::reserve::npts":[36,3,1,"_CPPv4N7Splines11CubicSpline7reserveE7integer"],"Splines::CubicSpline::reserve_external":[36,2,1,"_CPPv4N7Splines11CubicSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSpline::reserve_external::n":[36,3,1,"_CPPv4N7Splines11CubicSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSpline::reserve_external::p_dy":[36,3,1,"_CPPv4N7Splines11CubicSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSpline::reserve_external::p_x":[36,3,1,"_CPPv4N7Splines11CubicSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSpline::reserve_external::p_y":[36,3,1,"_CPPv4N7Splines11CubicSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSpline::search":[36,2,1,"_CPPv4NK7Splines11CubicSpline6searchER9real_type"],"Splines::CubicSpline::search::x":[36,3,1,"_CPPv4NK7Splines11CubicSpline6searchER9real_type"],"Splines::CubicSpline::setFinalBC":[36,2,1,"_CPPv4N7Splines11CubicSpline10setFinalBCE20CUBIC_SPLINE_TYPE_BC"],"Splines::CubicSpline::setFinalBC::bcn":[36,3,1,"_CPPv4N7Splines11CubicSpline10setFinalBCE20CUBIC_SPLINE_TYPE_BC"],"Splines::CubicSpline::setInitialBC":[36,2,1,"_CPPv4N7Splines11CubicSpline12setInitialBCE20CUBIC_SPLINE_TYPE_BC"],"Splines::CubicSpline::setInitialBC::bc0":[36,3,1,"_CPPv4N7Splines11CubicSpline12setInitialBCE20CUBIC_SPLINE_TYPE_BC"],"Splines::CubicSpline::setOrigin":[36,2,1,"_CPPv4N7Splines11CubicSpline9setOriginE9real_type"],"Splines::CubicSpline::setOrigin::x0":[36,3,1,"_CPPv4N7Splines11CubicSpline9setOriginE9real_type"],"Splines::CubicSpline::setRange":[36,2,1,"_CPPv4N7Splines11CubicSpline8setRangeE9real_type9real_type"],"Splines::CubicSpline::setRange::xmax":[36,3,1,"_CPPv4N7Splines11CubicSpline8setRangeE9real_type9real_type"],"Splines::CubicSpline::setRange::xmin":[36,3,1,"_CPPv4N7Splines11CubicSpline8setRangeE9real_type9real_type"],"Splines::CubicSpline::setup":[36,2,1,"_CPPv4N7Splines11CubicSpline5setupERK16GenericContainer"],"Splines::CubicSpline::setup::gc":[36,3,1,"_CPPv4N7Splines11CubicSpline5setupERK16GenericContainer"],"Splines::CubicSpline::type":[36,2,1,"_CPPv4NK7Splines11CubicSpline4typeEv"],"Splines::CubicSpline::type_name":[36,2,1,"_CPPv4NK7Splines11CubicSpline9type_nameEv"],"Splines::CubicSpline::writeToStream":[36,2,1,"_CPPv4NK7Splines11CubicSpline13writeToStreamER12ostream_type"],"Splines::CubicSpline::writeToStream::s":[36,3,1,"_CPPv4NK7Splines11CubicSpline13writeToStreamER12ostream_type"],"Splines::CubicSpline::xBegin":[36,2,1,"_CPPv4NK7Splines11CubicSpline6xBeginEv"],"Splines::CubicSpline::xEnd":[36,2,1,"_CPPv4NK7Splines11CubicSpline4xEndEv"],"Splines::CubicSpline::xMax":[36,2,1,"_CPPv4NK7Splines11CubicSpline4xMaxEv"],"Splines::CubicSpline::xMin":[36,2,1,"_CPPv4NK7Splines11CubicSpline4xMinEv"],"Splines::CubicSpline::xNode":[36,2,1,"_CPPv4NK7Splines11CubicSpline5xNodeE7integer"],"Splines::CubicSpline::xNode::i":[36,3,1,"_CPPv4NK7Splines11CubicSpline5xNodeE7integer"],"Splines::CubicSpline::yBegin":[36,2,1,"_CPPv4NK7Splines11CubicSpline6yBeginEv"],"Splines::CubicSpline::yEnd":[36,2,1,"_CPPv4NK7Splines11CubicSpline4yEndEv"],"Splines::CubicSpline::yMax":[36,2,1,"_CPPv4NK7Splines11CubicSpline4yMaxEv"],"Splines::CubicSpline::yMin":[36,2,1,"_CPPv4NK7Splines11CubicSpline4yMinEv"],"Splines::CubicSpline::yNode":[36,2,1,"_CPPv4NK7Splines11CubicSpline5yNodeE7integer"],"Splines::CubicSpline::yNode::i":[36,3,1,"_CPPv4NK7Splines11CubicSpline5yNodeE7integer"],"Splines::CubicSpline::ypNode":[36,2,1,"_CPPv4NK7Splines11CubicSpline6ypNodeE7integer"],"Splines::CubicSpline::ypNode::i":[36,3,1,"_CPPv4NK7Splines11CubicSpline6ypNodeE7integer"],"Splines::CubicSpline::~CubicSpline":[36,2,1,"_CPPv4N7Splines11CubicSplineD0Ev"],"Splines::CubicSplineBase":[37,1,1,"_CPPv4N7Splines15CubicSplineBaseE"],"Splines::CubicSplineBase::CubicSplineBase":[37,2,1,"_CPPv4N7Splines15CubicSplineBase15CubicSplineBaseERK6string"],"Splines::CubicSplineBase::CubicSplineBase::name":[37,3,1,"_CPPv4N7Splines15CubicSplineBase15CubicSplineBaseERK6string"],"Splines::CubicSplineBase::D":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase1DE9real_type"],"Splines::CubicSplineBase::D::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase1DE9real_type"],"Splines::CubicSplineBase::DD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase2DDE9real_type"],"Splines::CubicSplineBase::DD::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase2DDE9real_type"],"Splines::CubicSplineBase::DDD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase3DDDE9real_type"],"Splines::CubicSplineBase::DDD::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase3DDDE9real_type"],"Splines::CubicSplineBase::DDDD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4DDDDE9real_type"],"Splines::CubicSplineBase::DDDDD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase5DDDDDE9real_type"],"Splines::CubicSplineBase::build":[37,2,1,"_CPPv4N7Splines15CubicSplineBase5buildEv"],"Splines::CubicSplineBase::build::gc":[37,3,1,"_CPPv4N7Splines15CubicSplineBase5buildERK16GenericContainer"],"Splines::CubicSplineBase::build::incx":[37,3,1,"_CPPv4N7Splines15CubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSplineBase::build::incy":[37,3,1,"_CPPv4N7Splines15CubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSplineBase::build::incyp":[37,3,1,"_CPPv4N7Splines15CubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSplineBase::build::n":[37,3,1,"_CPPv4N7Splines15CubicSplineBase5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::CubicSplineBase::build::x":[37,3,1,"_CPPv4N7Splines15CubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSplineBase::build::y":[37,3,1,"_CPPv4N7Splines15CubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSplineBase::build::yp":[37,3,1,"_CPPv4N7Splines15CubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSplineBase::clear":[37,2,1,"_CPPv4N7Splines15CubicSplineBase5clearEv"],"Splines::CubicSplineBase::coeffs":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSplineBase::coeffs::cfs":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSplineBase::coeffs::nodes":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSplineBase::coeffs::transpose":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSplineBase::copySpline":[37,2,1,"_CPPv4N7Splines15CubicSplineBase10copySplineERK15CubicSplineBase"],"Splines::CubicSplineBase::copySpline::S":[37,3,1,"_CPPv4N7Splines15CubicSplineBase10copySplineERK15CubicSplineBase"],"Splines::CubicSplineBase::dropBack":[37,2,1,"_CPPv4N7Splines15CubicSplineBase8dropBackEv"],"Splines::CubicSplineBase::dump":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4dumpER12ostream_type7integerPKc"],"Splines::CubicSplineBase::dump::fname":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase4dumpEPKc7integerPKc"],"Splines::CubicSplineBase::dump::header":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase4dumpER12ostream_type7integerPKc"],"Splines::CubicSplineBase::dump::nintervals":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase4dumpER12ostream_type7integerPKc"],"Splines::CubicSplineBase::dump::s":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase4dumpER12ostream_type7integerPKc"],"Splines::CubicSplineBase::eval":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4evalE9real_type"],"Splines::CubicSplineBase::eval::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase4evalE9real_type"],"Splines::CubicSplineBase::eval_D":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase6eval_DE9real_type"],"Splines::CubicSplineBase::eval_D::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase6eval_DE9real_type"],"Splines::CubicSplineBase::eval_DD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase7eval_DDE9real_type"],"Splines::CubicSplineBase::eval_DD::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase7eval_DDE9real_type"],"Splines::CubicSplineBase::eval_DDD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase8eval_DDDE9real_type"],"Splines::CubicSplineBase::eval_DDD::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase8eval_DDDE9real_type"],"Splines::CubicSplineBase::eval_DDDD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase9eval_DDDDE9real_type"],"Splines::CubicSplineBase::eval_DDDD::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase9eval_DDDDE9real_type"],"Splines::CubicSplineBase::eval_DDDDD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase10eval_DDDDDE9real_type"],"Splines::CubicSplineBase::eval_DDDDD::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase10eval_DDDDDE9real_type"],"Splines::CubicSplineBase::id_D":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4id_DE7integer9real_type"],"Splines::CubicSplineBase::id_D::ni":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase4id_DE7integer9real_type"],"Splines::CubicSplineBase::id_D::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase4id_DE7integer9real_type"],"Splines::CubicSplineBase::id_DD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase5id_DDE7integer9real_type"],"Splines::CubicSplineBase::id_DD::ni":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase5id_DDE7integer9real_type"],"Splines::CubicSplineBase::id_DD::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase5id_DDE7integer9real_type"],"Splines::CubicSplineBase::id_DDD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase6id_DDDE7integer9real_type"],"Splines::CubicSplineBase::id_DDD::ni":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase6id_DDDE7integer9real_type"],"Splines::CubicSplineBase::id_DDD::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase6id_DDDE7integer9real_type"],"Splines::CubicSplineBase::id_DDDD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase7id_DDDDE7integer9real_type"],"Splines::CubicSplineBase::id_DDDDD":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase8id_DDDDDE7integer9real_type"],"Splines::CubicSplineBase::id_eval":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase7id_evalE7integer9real_type"],"Splines::CubicSplineBase::id_eval::ni":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase7id_evalE7integer9real_type"],"Splines::CubicSplineBase::id_eval::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase7id_evalE7integer9real_type"],"Splines::CubicSplineBase::info":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4infoEv"],"Splines::CubicSplineBase::info::stream":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase4infoER12ostream_type"],"Splines::CubicSplineBase::is_bounded":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase10is_boundedEv"],"Splines::CubicSplineBase::is_closed":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase9is_closedEv"],"Splines::CubicSplineBase::is_extended_constant":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase20is_extended_constantEv"],"Splines::CubicSplineBase::make_bounded":[37,2,1,"_CPPv4N7Splines15CubicSplineBase12make_boundedEv"],"Splines::CubicSplineBase::make_closed":[37,2,1,"_CPPv4N7Splines15CubicSplineBase11make_closedEv"],"Splines::CubicSplineBase::make_extended_constant":[37,2,1,"_CPPv4N7Splines15CubicSplineBase22make_extended_constantEv"],"Splines::CubicSplineBase::make_extended_not_constant":[37,2,1,"_CPPv4N7Splines15CubicSplineBase26make_extended_not_constantEv"],"Splines::CubicSplineBase::make_opened":[37,2,1,"_CPPv4N7Splines15CubicSplineBase11make_openedEv"],"Splines::CubicSplineBase::make_unbounded":[37,2,1,"_CPPv4N7Splines15CubicSplineBase14make_unboundedEv"],"Splines::CubicSplineBase::name":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4nameEv"],"Splines::CubicSplineBase::numPoints":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase9numPointsEv"],"Splines::CubicSplineBase::operator()":[37,2,1,"_CPPv4NK7Splines15CubicSplineBaseclE9real_type"],"Splines::CubicSplineBase::operator()::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBaseclE9real_type"],"Splines::CubicSplineBase::order":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase5orderEv"],"Splines::CubicSplineBase::pushBack":[37,2,1,"_CPPv4N7Splines15CubicSplineBase8pushBackE9real_type9real_type"],"Splines::CubicSplineBase::pushBack::x":[37,3,1,"_CPPv4N7Splines15CubicSplineBase8pushBackE9real_type9real_type"],"Splines::CubicSplineBase::pushBack::y":[37,3,1,"_CPPv4N7Splines15CubicSplineBase8pushBackE9real_type9real_type"],"Splines::CubicSplineBase::reserve":[37,2,1,"_CPPv4N7Splines15CubicSplineBase7reserveE7integer"],"Splines::CubicSplineBase::reserve::npts":[37,3,1,"_CPPv4N7Splines15CubicSplineBase7reserveE7integer"],"Splines::CubicSplineBase::reserve_external":[37,2,1,"_CPPv4N7Splines15CubicSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSplineBase::reserve_external::n":[37,3,1,"_CPPv4N7Splines15CubicSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSplineBase::reserve_external::p_dy":[37,3,1,"_CPPv4N7Splines15CubicSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSplineBase::reserve_external::p_x":[37,3,1,"_CPPv4N7Splines15CubicSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSplineBase::reserve_external::p_y":[37,3,1,"_CPPv4N7Splines15CubicSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSplineBase::search":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase6searchER9real_type"],"Splines::CubicSplineBase::search::x":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase6searchER9real_type"],"Splines::CubicSplineBase::setOrigin":[37,2,1,"_CPPv4N7Splines15CubicSplineBase9setOriginE9real_type"],"Splines::CubicSplineBase::setOrigin::x0":[37,3,1,"_CPPv4N7Splines15CubicSplineBase9setOriginE9real_type"],"Splines::CubicSplineBase::setRange":[37,2,1,"_CPPv4N7Splines15CubicSplineBase8setRangeE9real_type9real_type"],"Splines::CubicSplineBase::setRange::xmax":[37,3,1,"_CPPv4N7Splines15CubicSplineBase8setRangeE9real_type9real_type"],"Splines::CubicSplineBase::setRange::xmin":[37,3,1,"_CPPv4N7Splines15CubicSplineBase8setRangeE9real_type9real_type"],"Splines::CubicSplineBase::setup":[37,2,1,"_CPPv4N7Splines15CubicSplineBase5setupERK16GenericContainer"],"Splines::CubicSplineBase::setup::gc":[37,3,1,"_CPPv4N7Splines15CubicSplineBase5setupERK16GenericContainer"],"Splines::CubicSplineBase::type":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4typeEv"],"Splines::CubicSplineBase::type_name":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase9type_nameEv"],"Splines::CubicSplineBase::writeToStream":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase13writeToStreamER12ostream_type"],"Splines::CubicSplineBase::writeToStream::s":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase13writeToStreamER12ostream_type"],"Splines::CubicSplineBase::xBegin":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase6xBeginEv"],"Splines::CubicSplineBase::xEnd":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4xEndEv"],"Splines::CubicSplineBase::xMax":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4xMaxEv"],"Splines::CubicSplineBase::xMin":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4xMinEv"],"Splines::CubicSplineBase::xNode":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase5xNodeE7integer"],"Splines::CubicSplineBase::xNode::i":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase5xNodeE7integer"],"Splines::CubicSplineBase::yBegin":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase6yBeginEv"],"Splines::CubicSplineBase::yEnd":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4yEndEv"],"Splines::CubicSplineBase::yMax":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4yMaxEv"],"Splines::CubicSplineBase::yMin":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase4yMinEv"],"Splines::CubicSplineBase::yNode":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase5yNodeE7integer"],"Splines::CubicSplineBase::yNode::i":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase5yNodeE7integer"],"Splines::CubicSplineBase::ypNode":[37,2,1,"_CPPv4NK7Splines15CubicSplineBase6ypNodeE7integer"],"Splines::CubicSplineBase::ypNode::i":[37,3,1,"_CPPv4NK7Splines15CubicSplineBase6ypNodeE7integer"],"Splines::CubicSplineBase::~CubicSplineBase":[37,2,1,"_CPPv4N7Splines15CubicSplineBaseD0Ev"],"Splines::EXTRAPOLATE_BC":[56,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC14EXTRAPOLATE_BCE"],"Splines::FangHung":[118,2,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FangHung::dim":[118,3,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FangHung::ld_pnts":[118,3,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FangHung::npts":[118,3,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FangHung::pnts":[118,3,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FangHung::t":[118,3,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen":[114,2,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen::dim":[114,3,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen::ld_pnts":[114,3,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen::npts":[114,3,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen::pnts":[114,3,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen::t":[114,3,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::HERMITE_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D12HERMITE_TYPEE"],"Splines::HermiteSpline":[38,1,1,"_CPPv4N7Splines13HermiteSplineE"],"Splines::HermiteSpline::D":[38,2,1,"_CPPv4NK7Splines13HermiteSpline1DE9real_type"],"Splines::HermiteSpline::D::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline1DE9real_type"],"Splines::HermiteSpline::DD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline2DDE9real_type"],"Splines::HermiteSpline::DD::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline2DDE9real_type"],"Splines::HermiteSpline::DDD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline3DDDE9real_type"],"Splines::HermiteSpline::DDD::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline3DDDE9real_type"],"Splines::HermiteSpline::DDDD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4DDDDE9real_type"],"Splines::HermiteSpline::DDDDD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline5DDDDDE9real_type"],"Splines::HermiteSpline::HermiteSpline":[38,2,1,"_CPPv4N7Splines13HermiteSpline13HermiteSplineERK6string"],"Splines::HermiteSpline::HermiteSpline::name":[38,3,1,"_CPPv4N7Splines13HermiteSpline13HermiteSplineERK6string"],"Splines::HermiteSpline::build":[38,2,1,"_CPPv4N7Splines13HermiteSpline5buildEv"],"Splines::HermiteSpline::build::gc":[38,3,1,"_CPPv4N7Splines13HermiteSpline5buildERK16GenericContainer"],"Splines::HermiteSpline::build::incx":[38,3,1,"_CPPv4N7Splines13HermiteSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::HermiteSpline::build::incy":[38,3,1,"_CPPv4N7Splines13HermiteSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::HermiteSpline::build::incyp":[38,3,1,"_CPPv4N7Splines13HermiteSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::HermiteSpline::build::n":[38,3,1,"_CPPv4N7Splines13HermiteSpline5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::HermiteSpline::build::x":[38,3,1,"_CPPv4N7Splines13HermiteSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::HermiteSpline::build::y":[38,3,1,"_CPPv4N7Splines13HermiteSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::HermiteSpline::build::yp":[38,3,1,"_CPPv4N7Splines13HermiteSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::HermiteSpline::clear":[38,2,1,"_CPPv4N7Splines13HermiteSpline5clearEv"],"Splines::HermiteSpline::coeffs":[38,2,1,"_CPPv4NK7Splines13HermiteSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::HermiteSpline::coeffs::cfs":[38,3,1,"_CPPv4NK7Splines13HermiteSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::HermiteSpline::coeffs::nodes":[38,3,1,"_CPPv4NK7Splines13HermiteSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::HermiteSpline::coeffs::transpose":[38,3,1,"_CPPv4NK7Splines13HermiteSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::HermiteSpline::copySpline":[38,2,1,"_CPPv4N7Splines13HermiteSpline10copySplineERK15CubicSplineBase"],"Splines::HermiteSpline::copySpline::S":[38,3,1,"_CPPv4N7Splines13HermiteSpline10copySplineERK15CubicSplineBase"],"Splines::HermiteSpline::dropBack":[38,2,1,"_CPPv4N7Splines13HermiteSpline8dropBackEv"],"Splines::HermiteSpline::dump":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4dumpER12ostream_type7integerPKc"],"Splines::HermiteSpline::dump::fname":[38,3,1,"_CPPv4NK7Splines13HermiteSpline4dumpEPKc7integerPKc"],"Splines::HermiteSpline::dump::header":[38,3,1,"_CPPv4NK7Splines13HermiteSpline4dumpER12ostream_type7integerPKc"],"Splines::HermiteSpline::dump::nintervals":[38,3,1,"_CPPv4NK7Splines13HermiteSpline4dumpER12ostream_type7integerPKc"],"Splines::HermiteSpline::dump::s":[38,3,1,"_CPPv4NK7Splines13HermiteSpline4dumpER12ostream_type7integerPKc"],"Splines::HermiteSpline::eval":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4evalE9real_type"],"Splines::HermiteSpline::eval::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline4evalE9real_type"],"Splines::HermiteSpline::eval_D":[38,2,1,"_CPPv4NK7Splines13HermiteSpline6eval_DE9real_type"],"Splines::HermiteSpline::eval_D::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline6eval_DE9real_type"],"Splines::HermiteSpline::eval_DD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline7eval_DDE9real_type"],"Splines::HermiteSpline::eval_DD::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline7eval_DDE9real_type"],"Splines::HermiteSpline::eval_DDD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline8eval_DDDE9real_type"],"Splines::HermiteSpline::eval_DDD::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline8eval_DDDE9real_type"],"Splines::HermiteSpline::eval_DDDD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline9eval_DDDDE9real_type"],"Splines::HermiteSpline::eval_DDDD::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline9eval_DDDDE9real_type"],"Splines::HermiteSpline::eval_DDDDD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline10eval_DDDDDE9real_type"],"Splines::HermiteSpline::eval_DDDDD::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline10eval_DDDDDE9real_type"],"Splines::HermiteSpline::id_D":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4id_DE7integer9real_type"],"Splines::HermiteSpline::id_D::ni":[38,3,1,"_CPPv4NK7Splines13HermiteSpline4id_DE7integer9real_type"],"Splines::HermiteSpline::id_D::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline4id_DE7integer9real_type"],"Splines::HermiteSpline::id_DD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline5id_DDE7integer9real_type"],"Splines::HermiteSpline::id_DD::ni":[38,3,1,"_CPPv4NK7Splines13HermiteSpline5id_DDE7integer9real_type"],"Splines::HermiteSpline::id_DD::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline5id_DDE7integer9real_type"],"Splines::HermiteSpline::id_DDD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline6id_DDDE7integer9real_type"],"Splines::HermiteSpline::id_DDD::ni":[38,3,1,"_CPPv4NK7Splines13HermiteSpline6id_DDDE7integer9real_type"],"Splines::HermiteSpline::id_DDD::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline6id_DDDE7integer9real_type"],"Splines::HermiteSpline::id_DDDD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline7id_DDDDE7integer9real_type"],"Splines::HermiteSpline::id_DDDDD":[38,2,1,"_CPPv4NK7Splines13HermiteSpline8id_DDDDDE7integer9real_type"],"Splines::HermiteSpline::id_eval":[38,2,1,"_CPPv4NK7Splines13HermiteSpline7id_evalE7integer9real_type"],"Splines::HermiteSpline::id_eval::ni":[38,3,1,"_CPPv4NK7Splines13HermiteSpline7id_evalE7integer9real_type"],"Splines::HermiteSpline::id_eval::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline7id_evalE7integer9real_type"],"Splines::HermiteSpline::info":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4infoEv"],"Splines::HermiteSpline::info::stream":[38,3,1,"_CPPv4NK7Splines13HermiteSpline4infoER12ostream_type"],"Splines::HermiteSpline::is_bounded":[38,2,1,"_CPPv4NK7Splines13HermiteSpline10is_boundedEv"],"Splines::HermiteSpline::is_closed":[38,2,1,"_CPPv4NK7Splines13HermiteSpline9is_closedEv"],"Splines::HermiteSpline::is_extended_constant":[38,2,1,"_CPPv4NK7Splines13HermiteSpline20is_extended_constantEv"],"Splines::HermiteSpline::make_bounded":[38,2,1,"_CPPv4N7Splines13HermiteSpline12make_boundedEv"],"Splines::HermiteSpline::make_closed":[38,2,1,"_CPPv4N7Splines13HermiteSpline11make_closedEv"],"Splines::HermiteSpline::make_extended_constant":[38,2,1,"_CPPv4N7Splines13HermiteSpline22make_extended_constantEv"],"Splines::HermiteSpline::make_extended_not_constant":[38,2,1,"_CPPv4N7Splines13HermiteSpline26make_extended_not_constantEv"],"Splines::HermiteSpline::make_opened":[38,2,1,"_CPPv4N7Splines13HermiteSpline11make_openedEv"],"Splines::HermiteSpline::make_unbounded":[38,2,1,"_CPPv4N7Splines13HermiteSpline14make_unboundedEv"],"Splines::HermiteSpline::name":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4nameEv"],"Splines::HermiteSpline::numPoints":[38,2,1,"_CPPv4NK7Splines13HermiteSpline9numPointsEv"],"Splines::HermiteSpline::operator()":[38,2,1,"_CPPv4NK7Splines13HermiteSplineclE9real_type"],"Splines::HermiteSpline::operator()::x":[38,3,1,"_CPPv4NK7Splines13HermiteSplineclE9real_type"],"Splines::HermiteSpline::order":[38,2,1,"_CPPv4NK7Splines13HermiteSpline5orderEv"],"Splines::HermiteSpline::pushBack":[38,2,1,"_CPPv4N7Splines13HermiteSpline8pushBackE9real_type9real_type"],"Splines::HermiteSpline::pushBack::x":[38,3,1,"_CPPv4N7Splines13HermiteSpline8pushBackE9real_type9real_type"],"Splines::HermiteSpline::pushBack::y":[38,3,1,"_CPPv4N7Splines13HermiteSpline8pushBackE9real_type9real_type"],"Splines::HermiteSpline::reserve":[38,2,1,"_CPPv4N7Splines13HermiteSpline7reserveE7integer"],"Splines::HermiteSpline::reserve::npts":[38,3,1,"_CPPv4N7Splines13HermiteSpline7reserveE7integer"],"Splines::HermiteSpline::reserve_external":[38,2,1,"_CPPv4N7Splines13HermiteSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::HermiteSpline::reserve_external::n":[38,3,1,"_CPPv4N7Splines13HermiteSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::HermiteSpline::reserve_external::p_dy":[38,3,1,"_CPPv4N7Splines13HermiteSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::HermiteSpline::reserve_external::p_x":[38,3,1,"_CPPv4N7Splines13HermiteSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::HermiteSpline::reserve_external::p_y":[38,3,1,"_CPPv4N7Splines13HermiteSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::HermiteSpline::search":[38,2,1,"_CPPv4NK7Splines13HermiteSpline6searchER9real_type"],"Splines::HermiteSpline::search::x":[38,3,1,"_CPPv4NK7Splines13HermiteSpline6searchER9real_type"],"Splines::HermiteSpline::setOrigin":[38,2,1,"_CPPv4N7Splines13HermiteSpline9setOriginE9real_type"],"Splines::HermiteSpline::setOrigin::x0":[38,3,1,"_CPPv4N7Splines13HermiteSpline9setOriginE9real_type"],"Splines::HermiteSpline::setRange":[38,2,1,"_CPPv4N7Splines13HermiteSpline8setRangeE9real_type9real_type"],"Splines::HermiteSpline::setRange::xmax":[38,3,1,"_CPPv4N7Splines13HermiteSpline8setRangeE9real_type9real_type"],"Splines::HermiteSpline::setRange::xmin":[38,3,1,"_CPPv4N7Splines13HermiteSpline8setRangeE9real_type9real_type"],"Splines::HermiteSpline::setup":[38,2,1,"_CPPv4N7Splines13HermiteSpline5setupERK16GenericContainer"],"Splines::HermiteSpline::setup::gc":[38,3,1,"_CPPv4N7Splines13HermiteSpline5setupERK16GenericContainer"],"Splines::HermiteSpline::type":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4typeEv"],"Splines::HermiteSpline::type_name":[38,2,1,"_CPPv4NK7Splines13HermiteSpline9type_nameEv"],"Splines::HermiteSpline::writeToStream":[38,2,1,"_CPPv4NK7Splines13HermiteSpline13writeToStreamER12ostream_type"],"Splines::HermiteSpline::writeToStream::s":[38,3,1,"_CPPv4NK7Splines13HermiteSpline13writeToStreamER12ostream_type"],"Splines::HermiteSpline::xBegin":[38,2,1,"_CPPv4NK7Splines13HermiteSpline6xBeginEv"],"Splines::HermiteSpline::xEnd":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4xEndEv"],"Splines::HermiteSpline::xMax":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4xMaxEv"],"Splines::HermiteSpline::xMin":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4xMinEv"],"Splines::HermiteSpline::xNode":[38,2,1,"_CPPv4NK7Splines13HermiteSpline5xNodeE7integer"],"Splines::HermiteSpline::xNode::i":[38,3,1,"_CPPv4NK7Splines13HermiteSpline5xNodeE7integer"],"Splines::HermiteSpline::yBegin":[38,2,1,"_CPPv4NK7Splines13HermiteSpline6yBeginEv"],"Splines::HermiteSpline::yEnd":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4yEndEv"],"Splines::HermiteSpline::yMax":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4yMaxEv"],"Splines::HermiteSpline::yMin":[38,2,1,"_CPPv4NK7Splines13HermiteSpline4yMinEv"],"Splines::HermiteSpline::yNode":[38,2,1,"_CPPv4NK7Splines13HermiteSpline5yNodeE7integer"],"Splines::HermiteSpline::yNode::i":[38,3,1,"_CPPv4NK7Splines13HermiteSpline5yNodeE7integer"],"Splines::HermiteSpline::ypNode":[38,2,1,"_CPPv4NK7Splines13HermiteSpline6ypNodeE7integer"],"Splines::HermiteSpline::ypNode::i":[38,3,1,"_CPPv4NK7Splines13HermiteSpline6ypNodeE7integer"],"Splines::HermiteSpline::~HermiteSpline":[38,2,1,"_CPPv4N7Splines13HermiteSplineD0Ev"],"Splines::LINEAR_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D11LINEAR_TYPEE"],"Splines::LinearSpline":[39,1,1,"_CPPv4N7Splines12LinearSplineE"],"Splines::LinearSpline::D":[39,2,1,"_CPPv4NK7Splines12LinearSpline1DE9real_type"],"Splines::LinearSpline::D::x":[39,3,1,"_CPPv4NK7Splines12LinearSpline1DE9real_type"],"Splines::LinearSpline::DD":[39,2,1,"_CPPv4NK7Splines12LinearSpline2DDE9real_type"],"Splines::LinearSpline::DDD":[39,2,1,"_CPPv4NK7Splines12LinearSpline3DDDE9real_type"],"Splines::LinearSpline::DDDD":[39,2,1,"_CPPv4NK7Splines12LinearSpline4DDDDE9real_type"],"Splines::LinearSpline::DDDDD":[39,2,1,"_CPPv4NK7Splines12LinearSpline5DDDDDE9real_type"],"Splines::LinearSpline::LinearSpline":[39,2,1,"_CPPv4N7Splines12LinearSpline12LinearSplineERK6string"],"Splines::LinearSpline::LinearSpline::name":[39,3,1,"_CPPv4N7Splines12LinearSpline12LinearSplineERK6string"],"Splines::LinearSpline::build":[39,2,1,"_CPPv4N7Splines12LinearSpline5buildEv"],"Splines::LinearSpline::build::gc":[39,3,1,"_CPPv4N7Splines12LinearSpline5buildERK16GenericContainer"],"Splines::LinearSpline::build::incx":[39,3,1,"_CPPv4N7Splines12LinearSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::LinearSpline::build::incy":[39,3,1,"_CPPv4N7Splines12LinearSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::LinearSpline::build::n":[39,3,1,"_CPPv4N7Splines12LinearSpline5buildEPK9real_typePK9real_type7integer"],"Splines::LinearSpline::build::x":[39,3,1,"_CPPv4N7Splines12LinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::LinearSpline::build::y":[39,3,1,"_CPPv4N7Splines12LinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::LinearSpline::clear":[39,2,1,"_CPPv4N7Splines12LinearSpline5clearEv"],"Splines::LinearSpline::coeffs":[39,2,1,"_CPPv4NK7Splines12LinearSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::LinearSpline::coeffs::cfs":[39,3,1,"_CPPv4NK7Splines12LinearSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::LinearSpline::coeffs::nodes":[39,3,1,"_CPPv4NK7Splines12LinearSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::LinearSpline::coeffs::transpose":[39,3,1,"_CPPv4NK7Splines12LinearSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::LinearSpline::dropBack":[39,2,1,"_CPPv4N7Splines12LinearSpline8dropBackEv"],"Splines::LinearSpline::dump":[39,2,1,"_CPPv4NK7Splines12LinearSpline4dumpER12ostream_type7integerPKc"],"Splines::LinearSpline::dump::fname":[39,3,1,"_CPPv4NK7Splines12LinearSpline4dumpEPKc7integerPKc"],"Splines::LinearSpline::dump::header":[39,3,1,"_CPPv4NK7Splines12LinearSpline4dumpER12ostream_type7integerPKc"],"Splines::LinearSpline::dump::nintervals":[39,3,1,"_CPPv4NK7Splines12LinearSpline4dumpER12ostream_type7integerPKc"],"Splines::LinearSpline::dump::s":[39,3,1,"_CPPv4NK7Splines12LinearSpline4dumpER12ostream_type7integerPKc"],"Splines::LinearSpline::eval":[39,2,1,"_CPPv4NK7Splines12LinearSpline4evalE9real_type"],"Splines::LinearSpline::eval::x":[39,3,1,"_CPPv4NK7Splines12LinearSpline4evalE9real_type"],"Splines::LinearSpline::eval_D":[39,2,1,"_CPPv4NK7Splines12LinearSpline6eval_DE9real_type"],"Splines::LinearSpline::eval_D::x":[39,3,1,"_CPPv4NK7Splines12LinearSpline6eval_DE9real_type"],"Splines::LinearSpline::eval_DD":[39,2,1,"_CPPv4NK7Splines12LinearSpline7eval_DDE9real_type"],"Splines::LinearSpline::eval_DD::x":[39,3,1,"_CPPv4NK7Splines12LinearSpline7eval_DDE9real_type"],"Splines::LinearSpline::eval_DDD":[39,2,1,"_CPPv4NK7Splines12LinearSpline8eval_DDDE9real_type"],"Splines::LinearSpline::eval_DDD::x":[39,3,1,"_CPPv4NK7Splines12LinearSpline8eval_DDDE9real_type"],"Splines::LinearSpline::eval_DDDD":[39,2,1,"_CPPv4NK7Splines12LinearSpline9eval_DDDDE9real_type"],"Splines::LinearSpline::eval_DDDD::x":[39,3,1,"_CPPv4NK7Splines12LinearSpline9eval_DDDDE9real_type"],"Splines::LinearSpline::eval_DDDDD":[39,2,1,"_CPPv4NK7Splines12LinearSpline10eval_DDDDDE9real_type"],"Splines::LinearSpline::eval_DDDDD::x":[39,3,1,"_CPPv4NK7Splines12LinearSpline10eval_DDDDDE9real_type"],"Splines::LinearSpline::id_D":[39,2,1,"_CPPv4NK7Splines12LinearSpline4id_DE7integer9real_type"],"Splines::LinearSpline::id_DD":[39,2,1,"_CPPv4NK7Splines12LinearSpline5id_DDE7integer9real_type"],"Splines::LinearSpline::id_DDD":[39,2,1,"_CPPv4NK7Splines12LinearSpline6id_DDDE7integer9real_type"],"Splines::LinearSpline::id_DDDD":[39,2,1,"_CPPv4NK7Splines12LinearSpline7id_DDDDE7integer9real_type"],"Splines::LinearSpline::id_DDDDD":[39,2,1,"_CPPv4NK7Splines12LinearSpline8id_DDDDDE7integer9real_type"],"Splines::LinearSpline::id_eval":[39,2,1,"_CPPv4NK7Splines12LinearSpline7id_evalE7integer9real_type"],"Splines::LinearSpline::id_eval::ni":[39,3,1,"_CPPv4NK7Splines12LinearSpline7id_evalE7integer9real_type"],"Splines::LinearSpline::id_eval::x":[39,3,1,"_CPPv4NK7Splines12LinearSpline7id_evalE7integer9real_type"],"Splines::LinearSpline::info":[39,2,1,"_CPPv4NK7Splines12LinearSpline4infoEv"],"Splines::LinearSpline::info::stream":[39,3,1,"_CPPv4NK7Splines12LinearSpline4infoER12ostream_type"],"Splines::LinearSpline::is_bounded":[39,2,1,"_CPPv4NK7Splines12LinearSpline10is_boundedEv"],"Splines::LinearSpline::is_closed":[39,2,1,"_CPPv4NK7Splines12LinearSpline9is_closedEv"],"Splines::LinearSpline::is_extended_constant":[39,2,1,"_CPPv4NK7Splines12LinearSpline20is_extended_constantEv"],"Splines::LinearSpline::make_bounded":[39,2,1,"_CPPv4N7Splines12LinearSpline12make_boundedEv"],"Splines::LinearSpline::make_closed":[39,2,1,"_CPPv4N7Splines12LinearSpline11make_closedEv"],"Splines::LinearSpline::make_extended_constant":[39,2,1,"_CPPv4N7Splines12LinearSpline22make_extended_constantEv"],"Splines::LinearSpline::make_extended_not_constant":[39,2,1,"_CPPv4N7Splines12LinearSpline26make_extended_not_constantEv"],"Splines::LinearSpline::make_opened":[39,2,1,"_CPPv4N7Splines12LinearSpline11make_openedEv"],"Splines::LinearSpline::make_unbounded":[39,2,1,"_CPPv4N7Splines12LinearSpline14make_unboundedEv"],"Splines::LinearSpline::name":[39,2,1,"_CPPv4NK7Splines12LinearSpline4nameEv"],"Splines::LinearSpline::numPoints":[39,2,1,"_CPPv4NK7Splines12LinearSpline9numPointsEv"],"Splines::LinearSpline::operator()":[39,2,1,"_CPPv4NK7Splines12LinearSplineclE9real_type"],"Splines::LinearSpline::operator()::x":[39,3,1,"_CPPv4NK7Splines12LinearSplineclE9real_type"],"Splines::LinearSpline::order":[39,2,1,"_CPPv4NK7Splines12LinearSpline5orderEv"],"Splines::LinearSpline::pushBack":[39,2,1,"_CPPv4N7Splines12LinearSpline8pushBackE9real_type9real_type"],"Splines::LinearSpline::pushBack::x":[39,3,1,"_CPPv4N7Splines12LinearSpline8pushBackE9real_type9real_type"],"Splines::LinearSpline::pushBack::y":[39,3,1,"_CPPv4N7Splines12LinearSpline8pushBackE9real_type9real_type"],"Splines::LinearSpline::reserve":[39,2,1,"_CPPv4N7Splines12LinearSpline7reserveE7integer"],"Splines::LinearSpline::reserve::npts":[39,3,1,"_CPPv4N7Splines12LinearSpline7reserveE7integer"],"Splines::LinearSpline::reserve_external":[39,2,1,"_CPPv4N7Splines12LinearSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::LinearSpline::reserve_external::n":[39,3,1,"_CPPv4N7Splines12LinearSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::LinearSpline::reserve_external::p_x":[39,3,1,"_CPPv4N7Splines12LinearSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::LinearSpline::reserve_external::p_y":[39,3,1,"_CPPv4N7Splines12LinearSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::LinearSpline::search":[39,2,1,"_CPPv4NK7Splines12LinearSpline6searchER9real_type"],"Splines::LinearSpline::search::x":[39,3,1,"_CPPv4NK7Splines12LinearSpline6searchER9real_type"],"Splines::LinearSpline::setOrigin":[39,2,1,"_CPPv4N7Splines12LinearSpline9setOriginE9real_type"],"Splines::LinearSpline::setOrigin::x0":[39,3,1,"_CPPv4N7Splines12LinearSpline9setOriginE9real_type"],"Splines::LinearSpline::setRange":[39,2,1,"_CPPv4N7Splines12LinearSpline8setRangeE9real_type9real_type"],"Splines::LinearSpline::setRange::xmax":[39,3,1,"_CPPv4N7Splines12LinearSpline8setRangeE9real_type9real_type"],"Splines::LinearSpline::setRange::xmin":[39,3,1,"_CPPv4N7Splines12LinearSpline8setRangeE9real_type9real_type"],"Splines::LinearSpline::setup":[39,2,1,"_CPPv4N7Splines12LinearSpline5setupERK16GenericContainer"],"Splines::LinearSpline::setup::gc":[39,3,1,"_CPPv4N7Splines12LinearSpline5setupERK16GenericContainer"],"Splines::LinearSpline::type":[39,2,1,"_CPPv4NK7Splines12LinearSpline4typeEv"],"Splines::LinearSpline::type_name":[39,2,1,"_CPPv4NK7Splines12LinearSpline9type_nameEv"],"Splines::LinearSpline::writeToStream":[39,2,1,"_CPPv4NK7Splines12LinearSpline13writeToStreamER12ostream_type"],"Splines::LinearSpline::writeToStream::s":[39,3,1,"_CPPv4NK7Splines12LinearSpline13writeToStreamER12ostream_type"],"Splines::LinearSpline::xBegin":[39,2,1,"_CPPv4NK7Splines12LinearSpline6xBeginEv"],"Splines::LinearSpline::xEnd":[39,2,1,"_CPPv4NK7Splines12LinearSpline4xEndEv"],"Splines::LinearSpline::xMax":[39,2,1,"_CPPv4NK7Splines12LinearSpline4xMaxEv"],"Splines::LinearSpline::xMin":[39,2,1,"_CPPv4NK7Splines12LinearSpline4xMinEv"],"Splines::LinearSpline::xNode":[39,2,1,"_CPPv4NK7Splines12LinearSpline5xNodeE7integer"],"Splines::LinearSpline::xNode::i":[39,3,1,"_CPPv4NK7Splines12LinearSpline5xNodeE7integer"],"Splines::LinearSpline::yBegin":[39,2,1,"_CPPv4NK7Splines12LinearSpline6yBeginEv"],"Splines::LinearSpline::yEnd":[39,2,1,"_CPPv4NK7Splines12LinearSpline4yEndEv"],"Splines::LinearSpline::yMax":[39,2,1,"_CPPv4NK7Splines12LinearSpline4yMaxEv"],"Splines::LinearSpline::yMin":[39,2,1,"_CPPv4NK7Splines12LinearSpline4yMinEv"],"Splines::LinearSpline::yNode":[39,2,1,"_CPPv4NK7Splines12LinearSpline5yNodeE7integer"],"Splines::LinearSpline::yNode::i":[39,3,1,"_CPPv4NK7Splines12LinearSpline5yNodeE7integer"],"Splines::LinearSpline::~LinearSpline":[39,2,1,"_CPPv4N7Splines12LinearSplineD0Ev"],"Splines::NATURAL_BC":[56,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC10NATURAL_BCE"],"Splines::NOT_A_KNOT":[56,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC10NOT_A_KNOTE"],"Splines::PARABOLIC_RUNOUT_BC":[56,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC19PARABOLIC_RUNOUT_BCE"],"Splines::PCHIP_QUINTIC":[58,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13PCHIP_QUINTICE"],"Splines::PCHIP_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D10PCHIP_TYPEE"],"Splines::PchipSpline":[40,1,1,"_CPPv4N7Splines11PchipSplineE"],"Splines::PchipSpline::D":[40,2,1,"_CPPv4NK7Splines11PchipSpline1DE9real_type"],"Splines::PchipSpline::D::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline1DE9real_type"],"Splines::PchipSpline::DD":[40,2,1,"_CPPv4NK7Splines11PchipSpline2DDE9real_type"],"Splines::PchipSpline::DD::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline2DDE9real_type"],"Splines::PchipSpline::DDD":[40,2,1,"_CPPv4NK7Splines11PchipSpline3DDDE9real_type"],"Splines::PchipSpline::DDD::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline3DDDE9real_type"],"Splines::PchipSpline::DDDD":[40,2,1,"_CPPv4NK7Splines11PchipSpline4DDDDE9real_type"],"Splines::PchipSpline::DDDDD":[40,2,1,"_CPPv4NK7Splines11PchipSpline5DDDDDE9real_type"],"Splines::PchipSpline::PchipSpline":[40,2,1,"_CPPv4N7Splines11PchipSpline11PchipSplineERK6string"],"Splines::PchipSpline::PchipSpline::name":[40,3,1,"_CPPv4N7Splines11PchipSpline11PchipSplineERK6string"],"Splines::PchipSpline::build":[40,2,1,"_CPPv4N7Splines11PchipSpline5buildEv"],"Splines::PchipSpline::build::gc":[40,3,1,"_CPPv4N7Splines11PchipSpline5buildERK16GenericContainer"],"Splines::PchipSpline::build::incx":[40,3,1,"_CPPv4N7Splines11PchipSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::PchipSpline::build::incy":[40,3,1,"_CPPv4N7Splines11PchipSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::PchipSpline::build::incyp":[40,3,1,"_CPPv4N7Splines11PchipSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::PchipSpline::build::n":[40,3,1,"_CPPv4N7Splines11PchipSpline5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::PchipSpline::build::x":[40,3,1,"_CPPv4N7Splines11PchipSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::PchipSpline::build::y":[40,3,1,"_CPPv4N7Splines11PchipSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::PchipSpline::build::yp":[40,3,1,"_CPPv4N7Splines11PchipSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::PchipSpline::clear":[40,2,1,"_CPPv4N7Splines11PchipSpline5clearEv"],"Splines::PchipSpline::coeffs":[40,2,1,"_CPPv4NK7Splines11PchipSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::PchipSpline::coeffs::cfs":[40,3,1,"_CPPv4NK7Splines11PchipSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::PchipSpline::coeffs::nodes":[40,3,1,"_CPPv4NK7Splines11PchipSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::PchipSpline::coeffs::transpose":[40,3,1,"_CPPv4NK7Splines11PchipSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::PchipSpline::copySpline":[40,2,1,"_CPPv4N7Splines11PchipSpline10copySplineERK15CubicSplineBase"],"Splines::PchipSpline::copySpline::S":[40,3,1,"_CPPv4N7Splines11PchipSpline10copySplineERK15CubicSplineBase"],"Splines::PchipSpline::dropBack":[40,2,1,"_CPPv4N7Splines11PchipSpline8dropBackEv"],"Splines::PchipSpline::dump":[40,2,1,"_CPPv4NK7Splines11PchipSpline4dumpER12ostream_type7integerPKc"],"Splines::PchipSpline::dump::fname":[40,3,1,"_CPPv4NK7Splines11PchipSpline4dumpEPKc7integerPKc"],"Splines::PchipSpline::dump::header":[40,3,1,"_CPPv4NK7Splines11PchipSpline4dumpER12ostream_type7integerPKc"],"Splines::PchipSpline::dump::nintervals":[40,3,1,"_CPPv4NK7Splines11PchipSpline4dumpER12ostream_type7integerPKc"],"Splines::PchipSpline::dump::s":[40,3,1,"_CPPv4NK7Splines11PchipSpline4dumpER12ostream_type7integerPKc"],"Splines::PchipSpline::eval":[40,2,1,"_CPPv4NK7Splines11PchipSpline4evalE9real_type"],"Splines::PchipSpline::eval::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline4evalE9real_type"],"Splines::PchipSpline::eval_D":[40,2,1,"_CPPv4NK7Splines11PchipSpline6eval_DE9real_type"],"Splines::PchipSpline::eval_D::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline6eval_DE9real_type"],"Splines::PchipSpline::eval_DD":[40,2,1,"_CPPv4NK7Splines11PchipSpline7eval_DDE9real_type"],"Splines::PchipSpline::eval_DD::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline7eval_DDE9real_type"],"Splines::PchipSpline::eval_DDD":[40,2,1,"_CPPv4NK7Splines11PchipSpline8eval_DDDE9real_type"],"Splines::PchipSpline::eval_DDD::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline8eval_DDDE9real_type"],"Splines::PchipSpline::eval_DDDD":[40,2,1,"_CPPv4NK7Splines11PchipSpline9eval_DDDDE9real_type"],"Splines::PchipSpline::eval_DDDD::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline9eval_DDDDE9real_type"],"Splines::PchipSpline::eval_DDDDD":[40,2,1,"_CPPv4NK7Splines11PchipSpline10eval_DDDDDE9real_type"],"Splines::PchipSpline::eval_DDDDD::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline10eval_DDDDDE9real_type"],"Splines::PchipSpline::id_D":[40,2,1,"_CPPv4NK7Splines11PchipSpline4id_DE7integer9real_type"],"Splines::PchipSpline::id_D::ni":[40,3,1,"_CPPv4NK7Splines11PchipSpline4id_DE7integer9real_type"],"Splines::PchipSpline::id_D::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline4id_DE7integer9real_type"],"Splines::PchipSpline::id_DD":[40,2,1,"_CPPv4NK7Splines11PchipSpline5id_DDE7integer9real_type"],"Splines::PchipSpline::id_DD::ni":[40,3,1,"_CPPv4NK7Splines11PchipSpline5id_DDE7integer9real_type"],"Splines::PchipSpline::id_DD::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline5id_DDE7integer9real_type"],"Splines::PchipSpline::id_DDD":[40,2,1,"_CPPv4NK7Splines11PchipSpline6id_DDDE7integer9real_type"],"Splines::PchipSpline::id_DDD::ni":[40,3,1,"_CPPv4NK7Splines11PchipSpline6id_DDDE7integer9real_type"],"Splines::PchipSpline::id_DDD::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline6id_DDDE7integer9real_type"],"Splines::PchipSpline::id_DDDD":[40,2,1,"_CPPv4NK7Splines11PchipSpline7id_DDDDE7integer9real_type"],"Splines::PchipSpline::id_DDDDD":[40,2,1,"_CPPv4NK7Splines11PchipSpline8id_DDDDDE7integer9real_type"],"Splines::PchipSpline::id_eval":[40,2,1,"_CPPv4NK7Splines11PchipSpline7id_evalE7integer9real_type"],"Splines::PchipSpline::id_eval::ni":[40,3,1,"_CPPv4NK7Splines11PchipSpline7id_evalE7integer9real_type"],"Splines::PchipSpline::id_eval::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline7id_evalE7integer9real_type"],"Splines::PchipSpline::info":[40,2,1,"_CPPv4NK7Splines11PchipSpline4infoEv"],"Splines::PchipSpline::info::stream":[40,3,1,"_CPPv4NK7Splines11PchipSpline4infoER12ostream_type"],"Splines::PchipSpline::is_bounded":[40,2,1,"_CPPv4NK7Splines11PchipSpline10is_boundedEv"],"Splines::PchipSpline::is_closed":[40,2,1,"_CPPv4NK7Splines11PchipSpline9is_closedEv"],"Splines::PchipSpline::is_extended_constant":[40,2,1,"_CPPv4NK7Splines11PchipSpline20is_extended_constantEv"],"Splines::PchipSpline::make_bounded":[40,2,1,"_CPPv4N7Splines11PchipSpline12make_boundedEv"],"Splines::PchipSpline::make_closed":[40,2,1,"_CPPv4N7Splines11PchipSpline11make_closedEv"],"Splines::PchipSpline::make_extended_constant":[40,2,1,"_CPPv4N7Splines11PchipSpline22make_extended_constantEv"],"Splines::PchipSpline::make_extended_not_constant":[40,2,1,"_CPPv4N7Splines11PchipSpline26make_extended_not_constantEv"],"Splines::PchipSpline::make_opened":[40,2,1,"_CPPv4N7Splines11PchipSpline11make_openedEv"],"Splines::PchipSpline::make_unbounded":[40,2,1,"_CPPv4N7Splines11PchipSpline14make_unboundedEv"],"Splines::PchipSpline::name":[40,2,1,"_CPPv4NK7Splines11PchipSpline4nameEv"],"Splines::PchipSpline::numPoints":[40,2,1,"_CPPv4NK7Splines11PchipSpline9numPointsEv"],"Splines::PchipSpline::operator()":[40,2,1,"_CPPv4NK7Splines11PchipSplineclE9real_type"],"Splines::PchipSpline::operator()::x":[40,3,1,"_CPPv4NK7Splines11PchipSplineclE9real_type"],"Splines::PchipSpline::order":[40,2,1,"_CPPv4NK7Splines11PchipSpline5orderEv"],"Splines::PchipSpline::pushBack":[40,2,1,"_CPPv4N7Splines11PchipSpline8pushBackE9real_type9real_type"],"Splines::PchipSpline::pushBack::x":[40,3,1,"_CPPv4N7Splines11PchipSpline8pushBackE9real_type9real_type"],"Splines::PchipSpline::pushBack::y":[40,3,1,"_CPPv4N7Splines11PchipSpline8pushBackE9real_type9real_type"],"Splines::PchipSpline::reserve":[40,2,1,"_CPPv4N7Splines11PchipSpline7reserveE7integer"],"Splines::PchipSpline::reserve::npts":[40,3,1,"_CPPv4N7Splines11PchipSpline7reserveE7integer"],"Splines::PchipSpline::reserve_external":[40,2,1,"_CPPv4N7Splines11PchipSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::PchipSpline::reserve_external::n":[40,3,1,"_CPPv4N7Splines11PchipSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::PchipSpline::reserve_external::p_dy":[40,3,1,"_CPPv4N7Splines11PchipSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::PchipSpline::reserve_external::p_x":[40,3,1,"_CPPv4N7Splines11PchipSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::PchipSpline::reserve_external::p_y":[40,3,1,"_CPPv4N7Splines11PchipSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::PchipSpline::search":[40,2,1,"_CPPv4NK7Splines11PchipSpline6searchER9real_type"],"Splines::PchipSpline::search::x":[40,3,1,"_CPPv4NK7Splines11PchipSpline6searchER9real_type"],"Splines::PchipSpline::setOrigin":[40,2,1,"_CPPv4N7Splines11PchipSpline9setOriginE9real_type"],"Splines::PchipSpline::setOrigin::x0":[40,3,1,"_CPPv4N7Splines11PchipSpline9setOriginE9real_type"],"Splines::PchipSpline::setRange":[40,2,1,"_CPPv4N7Splines11PchipSpline8setRangeE9real_type9real_type"],"Splines::PchipSpline::setRange::xmax":[40,3,1,"_CPPv4N7Splines11PchipSpline8setRangeE9real_type9real_type"],"Splines::PchipSpline::setRange::xmin":[40,3,1,"_CPPv4N7Splines11PchipSpline8setRangeE9real_type9real_type"],"Splines::PchipSpline::setup":[40,2,1,"_CPPv4N7Splines11PchipSpline5setupERK16GenericContainer"],"Splines::PchipSpline::setup::gc":[40,3,1,"_CPPv4N7Splines11PchipSpline5setupERK16GenericContainer"],"Splines::PchipSpline::type":[40,2,1,"_CPPv4NK7Splines11PchipSpline4typeEv"],"Splines::PchipSpline::type_name":[40,2,1,"_CPPv4NK7Splines11PchipSpline9type_nameEv"],"Splines::PchipSpline::writeToStream":[40,2,1,"_CPPv4NK7Splines11PchipSpline13writeToStreamER12ostream_type"],"Splines::PchipSpline::writeToStream::s":[40,3,1,"_CPPv4NK7Splines11PchipSpline13writeToStreamER12ostream_type"],"Splines::PchipSpline::xBegin":[40,2,1,"_CPPv4NK7Splines11PchipSpline6xBeginEv"],"Splines::PchipSpline::xEnd":[40,2,1,"_CPPv4NK7Splines11PchipSpline4xEndEv"],"Splines::PchipSpline::xMax":[40,2,1,"_CPPv4NK7Splines11PchipSpline4xMaxEv"],"Splines::PchipSpline::xMin":[40,2,1,"_CPPv4NK7Splines11PchipSpline4xMinEv"],"Splines::PchipSpline::xNode":[40,2,1,"_CPPv4NK7Splines11PchipSpline5xNodeE7integer"],"Splines::PchipSpline::xNode::i":[40,3,1,"_CPPv4NK7Splines11PchipSpline5xNodeE7integer"],"Splines::PchipSpline::yBegin":[40,2,1,"_CPPv4NK7Splines11PchipSpline6yBeginEv"],"Splines::PchipSpline::yEnd":[40,2,1,"_CPPv4NK7Splines11PchipSpline4yEndEv"],"Splines::PchipSpline::yMax":[40,2,1,"_CPPv4NK7Splines11PchipSpline4yMaxEv"],"Splines::PchipSpline::yMin":[40,2,1,"_CPPv4NK7Splines11PchipSpline4yMinEv"],"Splines::PchipSpline::yNode":[40,2,1,"_CPPv4NK7Splines11PchipSpline5yNodeE7integer"],"Splines::PchipSpline::yNode::i":[40,3,1,"_CPPv4NK7Splines11PchipSpline5yNodeE7integer"],"Splines::PchipSpline::ypNode":[40,2,1,"_CPPv4NK7Splines11PchipSpline6ypNodeE7integer"],"Splines::PchipSpline::ypNode::i":[40,3,1,"_CPPv4NK7Splines11PchipSpline6ypNodeE7integer"],"Splines::PchipSpline::~PchipSpline":[40,2,1,"_CPPv4N7Splines11PchipSplineD0Ev"],"Splines::Pchip_build":[120,2,1,"_CPPv4N7Splines11Pchip_buildEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build::X":[120,3,1,"_CPPv4N7Splines11Pchip_buildEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build::Y":[120,3,1,"_CPPv4N7Splines11Pchip_buildEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build::Yp":[120,3,1,"_CPPv4N7Splines11Pchip_buildEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build::npts":[120,3,1,"_CPPv4N7Splines11Pchip_buildEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build_new":[103,2,1,"_CPPv4N7Splines15Pchip_build_newEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build_new::X":[103,3,1,"_CPPv4N7Splines15Pchip_build_newEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build_new::Y":[103,3,1,"_CPPv4N7Splines15Pchip_build_newEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build_new::Yp":[103,3,1,"_CPPv4N7Splines15Pchip_build_newEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build_new::npts":[103,3,1,"_CPPv4N7Splines15Pchip_build_newEPK9real_typePK9real_typeP9real_type7integer"],"Splines::QUINTIC_SPLINE_TYPE":[58,5,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPEE"],"Splines::QUINTIC_SPLINE_TYPE::AKIMA_QUINTIC":[58,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13AKIMA_QUINTICE"],"Splines::QUINTIC_SPLINE_TYPE::BESSEL_QUINTIC":[58,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE14BESSEL_QUINTICE"],"Splines::QUINTIC_SPLINE_TYPE::CUBIC_QUINTIC":[58,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13CUBIC_QUINTICE"],"Splines::QUINTIC_SPLINE_TYPE::PCHIP_QUINTIC":[58,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13PCHIP_QUINTICE"],"Splines::QUINTIC_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D12QUINTIC_TYPEE"],"Splines::QuinticSpline":[41,1,1,"_CPPv4N7Splines13QuinticSplineE"],"Splines::QuinticSpline::D":[41,2,1,"_CPPv4NK7Splines13QuinticSpline1DE9real_type"],"Splines::QuinticSpline::D::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline1DE9real_type"],"Splines::QuinticSpline::DD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline2DDE9real_type"],"Splines::QuinticSpline::DD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline2DDE9real_type"],"Splines::QuinticSpline::DDD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline3DDDE9real_type"],"Splines::QuinticSpline::DDD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline3DDDE9real_type"],"Splines::QuinticSpline::DDDD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4DDDDE9real_type"],"Splines::QuinticSpline::DDDD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline4DDDDE9real_type"],"Splines::QuinticSpline::DDDDD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline5DDDDDE9real_type"],"Splines::QuinticSpline::DDDDD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline5DDDDDE9real_type"],"Splines::QuinticSpline::QuinticSpline":[41,2,1,"_CPPv4N7Splines13QuinticSpline13QuinticSplineERK6string"],"Splines::QuinticSpline::QuinticSpline::name":[41,3,1,"_CPPv4N7Splines13QuinticSpline13QuinticSplineERK6string"],"Splines::QuinticSpline::build":[41,2,1,"_CPPv4N7Splines13QuinticSpline5buildEv"],"Splines::QuinticSpline::build::gc":[41,3,1,"_CPPv4N7Splines13QuinticSpline5buildERK16GenericContainer"],"Splines::QuinticSpline::build::incx":[41,3,1,"_CPPv4N7Splines13QuinticSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::QuinticSpline::build::incy":[41,3,1,"_CPPv4N7Splines13QuinticSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::QuinticSpline::build::n":[41,3,1,"_CPPv4N7Splines13QuinticSpline5buildEPK9real_typePK9real_type7integer"],"Splines::QuinticSpline::build::x":[41,3,1,"_CPPv4N7Splines13QuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::QuinticSpline::build::y":[41,3,1,"_CPPv4N7Splines13QuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::QuinticSpline::clear":[41,2,1,"_CPPv4N7Splines13QuinticSpline5clearEv"],"Splines::QuinticSpline::coeffs":[41,2,1,"_CPPv4NK7Splines13QuinticSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSpline::coeffs::cfs":[41,3,1,"_CPPv4NK7Splines13QuinticSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSpline::coeffs::nodes":[41,3,1,"_CPPv4NK7Splines13QuinticSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSpline::coeffs::transpose":[41,3,1,"_CPPv4NK7Splines13QuinticSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSpline::copySpline":[41,2,1,"_CPPv4N7Splines13QuinticSpline10copySplineERK17QuinticSplineBase"],"Splines::QuinticSpline::copySpline::S":[41,3,1,"_CPPv4N7Splines13QuinticSpline10copySplineERK17QuinticSplineBase"],"Splines::QuinticSpline::dropBack":[41,2,1,"_CPPv4N7Splines13QuinticSpline8dropBackEv"],"Splines::QuinticSpline::dump":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4dumpER12ostream_type7integerPKc"],"Splines::QuinticSpline::dump::fname":[41,3,1,"_CPPv4NK7Splines13QuinticSpline4dumpEPKc7integerPKc"],"Splines::QuinticSpline::dump::header":[41,3,1,"_CPPv4NK7Splines13QuinticSpline4dumpER12ostream_type7integerPKc"],"Splines::QuinticSpline::dump::nintervals":[41,3,1,"_CPPv4NK7Splines13QuinticSpline4dumpER12ostream_type7integerPKc"],"Splines::QuinticSpline::dump::s":[41,3,1,"_CPPv4NK7Splines13QuinticSpline4dumpER12ostream_type7integerPKc"],"Splines::QuinticSpline::eval":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4evalE9real_type"],"Splines::QuinticSpline::eval::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline4evalE9real_type"],"Splines::QuinticSpline::eval_D":[41,2,1,"_CPPv4NK7Splines13QuinticSpline6eval_DE9real_type"],"Splines::QuinticSpline::eval_D::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline6eval_DE9real_type"],"Splines::QuinticSpline::eval_DD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline7eval_DDE9real_type"],"Splines::QuinticSpline::eval_DD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline7eval_DDE9real_type"],"Splines::QuinticSpline::eval_DDD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline8eval_DDDE9real_type"],"Splines::QuinticSpline::eval_DDD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline8eval_DDDE9real_type"],"Splines::QuinticSpline::eval_DDDD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline9eval_DDDDE9real_type"],"Splines::QuinticSpline::eval_DDDD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline9eval_DDDDE9real_type"],"Splines::QuinticSpline::eval_DDDDD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline10eval_DDDDDE9real_type"],"Splines::QuinticSpline::eval_DDDDD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline10eval_DDDDDE9real_type"],"Splines::QuinticSpline::id_D":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4id_DE7integer9real_type"],"Splines::QuinticSpline::id_D::ni":[41,3,1,"_CPPv4NK7Splines13QuinticSpline4id_DE7integer9real_type"],"Splines::QuinticSpline::id_D::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline4id_DE7integer9real_type"],"Splines::QuinticSpline::id_DD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline5id_DDE7integer9real_type"],"Splines::QuinticSpline::id_DD::ni":[41,3,1,"_CPPv4NK7Splines13QuinticSpline5id_DDE7integer9real_type"],"Splines::QuinticSpline::id_DD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline5id_DDE7integer9real_type"],"Splines::QuinticSpline::id_DDD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline6id_DDDE7integer9real_type"],"Splines::QuinticSpline::id_DDD::ni":[41,3,1,"_CPPv4NK7Splines13QuinticSpline6id_DDDE7integer9real_type"],"Splines::QuinticSpline::id_DDD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline6id_DDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline7id_DDDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDD::ni":[41,3,1,"_CPPv4NK7Splines13QuinticSpline7id_DDDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline7id_DDDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDDD":[41,2,1,"_CPPv4NK7Splines13QuinticSpline8id_DDDDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDDD::ni":[41,3,1,"_CPPv4NK7Splines13QuinticSpline8id_DDDDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDDD::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline8id_DDDDDE7integer9real_type"],"Splines::QuinticSpline::id_eval":[41,2,1,"_CPPv4NK7Splines13QuinticSpline7id_evalE7integer9real_type"],"Splines::QuinticSpline::id_eval::ni":[41,3,1,"_CPPv4NK7Splines13QuinticSpline7id_evalE7integer9real_type"],"Splines::QuinticSpline::id_eval::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline7id_evalE7integer9real_type"],"Splines::QuinticSpline::info":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4infoEv"],"Splines::QuinticSpline::info::stream":[41,3,1,"_CPPv4NK7Splines13QuinticSpline4infoER12ostream_type"],"Splines::QuinticSpline::is_bounded":[41,2,1,"_CPPv4NK7Splines13QuinticSpline10is_boundedEv"],"Splines::QuinticSpline::is_closed":[41,2,1,"_CPPv4NK7Splines13QuinticSpline9is_closedEv"],"Splines::QuinticSpline::is_extended_constant":[41,2,1,"_CPPv4NK7Splines13QuinticSpline20is_extended_constantEv"],"Splines::QuinticSpline::make_bounded":[41,2,1,"_CPPv4N7Splines13QuinticSpline12make_boundedEv"],"Splines::QuinticSpline::make_closed":[41,2,1,"_CPPv4N7Splines13QuinticSpline11make_closedEv"],"Splines::QuinticSpline::make_extended_constant":[41,2,1,"_CPPv4N7Splines13QuinticSpline22make_extended_constantEv"],"Splines::QuinticSpline::make_extended_not_constant":[41,2,1,"_CPPv4N7Splines13QuinticSpline26make_extended_not_constantEv"],"Splines::QuinticSpline::make_opened":[41,2,1,"_CPPv4N7Splines13QuinticSpline11make_openedEv"],"Splines::QuinticSpline::make_unbounded":[41,2,1,"_CPPv4N7Splines13QuinticSpline14make_unboundedEv"],"Splines::QuinticSpline::name":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4nameEv"],"Splines::QuinticSpline::numPoints":[41,2,1,"_CPPv4NK7Splines13QuinticSpline9numPointsEv"],"Splines::QuinticSpline::operator()":[41,2,1,"_CPPv4NK7Splines13QuinticSplineclE9real_type"],"Splines::QuinticSpline::operator()::x":[41,3,1,"_CPPv4NK7Splines13QuinticSplineclE9real_type"],"Splines::QuinticSpline::order":[41,2,1,"_CPPv4NK7Splines13QuinticSpline5orderEv"],"Splines::QuinticSpline::pushBack":[41,2,1,"_CPPv4N7Splines13QuinticSpline8pushBackE9real_type9real_type"],"Splines::QuinticSpline::pushBack::x":[41,3,1,"_CPPv4N7Splines13QuinticSpline8pushBackE9real_type9real_type"],"Splines::QuinticSpline::pushBack::y":[41,3,1,"_CPPv4N7Splines13QuinticSpline8pushBackE9real_type9real_type"],"Splines::QuinticSpline::reserve":[41,2,1,"_CPPv4N7Splines13QuinticSpline7reserveE7integer"],"Splines::QuinticSpline::reserve::npts":[41,3,1,"_CPPv4N7Splines13QuinticSpline7reserveE7integer"],"Splines::QuinticSpline::reserve_external":[41,2,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::reserve_external::n":[41,3,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::reserve_external::p_Yp":[41,3,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::reserve_external::p_Ypp":[41,3,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::reserve_external::p_x":[41,3,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::reserve_external::p_y":[41,3,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::search":[41,2,1,"_CPPv4NK7Splines13QuinticSpline6searchER9real_type"],"Splines::QuinticSpline::search::x":[41,3,1,"_CPPv4NK7Splines13QuinticSpline6searchER9real_type"],"Splines::QuinticSpline::setOrigin":[41,2,1,"_CPPv4N7Splines13QuinticSpline9setOriginE9real_type"],"Splines::QuinticSpline::setOrigin::x0":[41,3,1,"_CPPv4N7Splines13QuinticSpline9setOriginE9real_type"],"Splines::QuinticSpline::setQuinticType":[41,2,1,"_CPPv4N7Splines13QuinticSpline14setQuinticTypeE19QUINTIC_SPLINE_TYPE"],"Splines::QuinticSpline::setQuinticType::qt":[41,3,1,"_CPPv4N7Splines13QuinticSpline14setQuinticTypeE19QUINTIC_SPLINE_TYPE"],"Splines::QuinticSpline::setRange":[41,2,1,"_CPPv4N7Splines13QuinticSpline8setRangeE9real_type9real_type"],"Splines::QuinticSpline::setRange::xmax":[41,3,1,"_CPPv4N7Splines13QuinticSpline8setRangeE9real_type9real_type"],"Splines::QuinticSpline::setRange::xmin":[41,3,1,"_CPPv4N7Splines13QuinticSpline8setRangeE9real_type9real_type"],"Splines::QuinticSpline::setup":[41,2,1,"_CPPv4N7Splines13QuinticSpline5setupERK16GenericContainer"],"Splines::QuinticSpline::setup::gc":[41,3,1,"_CPPv4N7Splines13QuinticSpline5setupERK16GenericContainer"],"Splines::QuinticSpline::type":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4typeEv"],"Splines::QuinticSpline::type_name":[41,2,1,"_CPPv4NK7Splines13QuinticSpline9type_nameEv"],"Splines::QuinticSpline::writeToStream":[41,2,1,"_CPPv4NK7Splines13QuinticSpline13writeToStreamER12ostream_type"],"Splines::QuinticSpline::writeToStream::s":[41,3,1,"_CPPv4NK7Splines13QuinticSpline13writeToStreamER12ostream_type"],"Splines::QuinticSpline::xBegin":[41,2,1,"_CPPv4NK7Splines13QuinticSpline6xBeginEv"],"Splines::QuinticSpline::xEnd":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4xEndEv"],"Splines::QuinticSpline::xMax":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4xMaxEv"],"Splines::QuinticSpline::xMin":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4xMinEv"],"Splines::QuinticSpline::xNode":[41,2,1,"_CPPv4NK7Splines13QuinticSpline5xNodeE7integer"],"Splines::QuinticSpline::xNode::i":[41,3,1,"_CPPv4NK7Splines13QuinticSpline5xNodeE7integer"],"Splines::QuinticSpline::yBegin":[41,2,1,"_CPPv4NK7Splines13QuinticSpline6yBeginEv"],"Splines::QuinticSpline::yEnd":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4yEndEv"],"Splines::QuinticSpline::yMax":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4yMaxEv"],"Splines::QuinticSpline::yMin":[41,2,1,"_CPPv4NK7Splines13QuinticSpline4yMinEv"],"Splines::QuinticSpline::yNode":[41,2,1,"_CPPv4NK7Splines13QuinticSpline5yNodeE7integer"],"Splines::QuinticSpline::yNode::i":[41,3,1,"_CPPv4NK7Splines13QuinticSpline5yNodeE7integer"],"Splines::QuinticSpline::ypNode":[41,2,1,"_CPPv4NK7Splines13QuinticSpline6ypNodeE7integer"],"Splines::QuinticSpline::ypNode::i":[41,3,1,"_CPPv4NK7Splines13QuinticSpline6ypNodeE7integer"],"Splines::QuinticSpline::yppNode":[41,2,1,"_CPPv4NK7Splines13QuinticSpline7yppNodeE7integer"],"Splines::QuinticSpline::yppNode::i":[41,3,1,"_CPPv4NK7Splines13QuinticSpline7yppNodeE7integer"],"Splines::QuinticSpline::~QuinticSpline":[41,2,1,"_CPPv4N7Splines13QuinticSplineD0Ev"],"Splines::QuinticSplineBase":[42,1,1,"_CPPv4N7Splines17QuinticSplineBaseE"],"Splines::QuinticSplineBase::D":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase1DE9real_type"],"Splines::QuinticSplineBase::D::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase1DE9real_type"],"Splines::QuinticSplineBase::DD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase2DDE9real_type"],"Splines::QuinticSplineBase::DD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase2DDE9real_type"],"Splines::QuinticSplineBase::DDD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase3DDDE9real_type"],"Splines::QuinticSplineBase::DDD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase3DDDE9real_type"],"Splines::QuinticSplineBase::DDDD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4DDDDE9real_type"],"Splines::QuinticSplineBase::DDDD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase4DDDDE9real_type"],"Splines::QuinticSplineBase::DDDDD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase5DDDDDE9real_type"],"Splines::QuinticSplineBase::DDDDD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase5DDDDDE9real_type"],"Splines::QuinticSplineBase::QuinticSplineBase":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase17QuinticSplineBaseERK6string"],"Splines::QuinticSplineBase::QuinticSplineBase::name":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase17QuinticSplineBaseERK6string"],"Splines::QuinticSplineBase::build":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase5buildEv"],"Splines::QuinticSplineBase::build::gc":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildERK16GenericContainer"],"Splines::QuinticSplineBase::build::incx":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::QuinticSplineBase::build::incy":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::QuinticSplineBase::build::n":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildEPK9real_typePK9real_type7integer"],"Splines::QuinticSplineBase::build::x":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::QuinticSplineBase::build::y":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::QuinticSplineBase::clear":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase5clearEv"],"Splines::QuinticSplineBase::coeffs":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSplineBase::coeffs::cfs":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSplineBase::coeffs::nodes":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSplineBase::coeffs::transpose":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSplineBase::copySpline":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase10copySplineERK17QuinticSplineBase"],"Splines::QuinticSplineBase::copySpline::S":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase10copySplineERK17QuinticSplineBase"],"Splines::QuinticSplineBase::dropBack":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase8dropBackEv"],"Splines::QuinticSplineBase::dump":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4dumpER12ostream_type7integerPKc"],"Splines::QuinticSplineBase::dump::fname":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase4dumpEPKc7integerPKc"],"Splines::QuinticSplineBase::dump::header":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase4dumpER12ostream_type7integerPKc"],"Splines::QuinticSplineBase::dump::nintervals":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase4dumpER12ostream_type7integerPKc"],"Splines::QuinticSplineBase::dump::s":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase4dumpER12ostream_type7integerPKc"],"Splines::QuinticSplineBase::eval":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4evalE9real_type"],"Splines::QuinticSplineBase::eval::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase4evalE9real_type"],"Splines::QuinticSplineBase::eval_D":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase6eval_DE9real_type"],"Splines::QuinticSplineBase::eval_D::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase6eval_DE9real_type"],"Splines::QuinticSplineBase::eval_DD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase7eval_DDE9real_type"],"Splines::QuinticSplineBase::eval_DD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase7eval_DDE9real_type"],"Splines::QuinticSplineBase::eval_DDD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase8eval_DDDE9real_type"],"Splines::QuinticSplineBase::eval_DDD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase8eval_DDDE9real_type"],"Splines::QuinticSplineBase::eval_DDDD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase9eval_DDDDE9real_type"],"Splines::QuinticSplineBase::eval_DDDD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase9eval_DDDDE9real_type"],"Splines::QuinticSplineBase::eval_DDDDD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase10eval_DDDDDE9real_type"],"Splines::QuinticSplineBase::eval_DDDDD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase10eval_DDDDDE9real_type"],"Splines::QuinticSplineBase::id_D":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4id_DE7integer9real_type"],"Splines::QuinticSplineBase::id_D::ni":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase4id_DE7integer9real_type"],"Splines::QuinticSplineBase::id_D::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase4id_DE7integer9real_type"],"Splines::QuinticSplineBase::id_DD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase5id_DDE7integer9real_type"],"Splines::QuinticSplineBase::id_DD::ni":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase5id_DDE7integer9real_type"],"Splines::QuinticSplineBase::id_DD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase5id_DDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase6id_DDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDD::ni":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase6id_DDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase6id_DDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase7id_DDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDD::ni":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase7id_DDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase7id_DDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDDD":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase8id_DDDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDDD::ni":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase8id_DDDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDDD::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase8id_DDDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_eval":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase7id_evalE7integer9real_type"],"Splines::QuinticSplineBase::id_eval::ni":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase7id_evalE7integer9real_type"],"Splines::QuinticSplineBase::id_eval::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase7id_evalE7integer9real_type"],"Splines::QuinticSplineBase::info":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4infoEv"],"Splines::QuinticSplineBase::info::stream":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase4infoER12ostream_type"],"Splines::QuinticSplineBase::is_bounded":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase10is_boundedEv"],"Splines::QuinticSplineBase::is_closed":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase9is_closedEv"],"Splines::QuinticSplineBase::is_extended_constant":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase20is_extended_constantEv"],"Splines::QuinticSplineBase::make_bounded":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase12make_boundedEv"],"Splines::QuinticSplineBase::make_closed":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase11make_closedEv"],"Splines::QuinticSplineBase::make_extended_constant":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase22make_extended_constantEv"],"Splines::QuinticSplineBase::make_extended_not_constant":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase26make_extended_not_constantEv"],"Splines::QuinticSplineBase::make_opened":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase11make_openedEv"],"Splines::QuinticSplineBase::make_unbounded":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase14make_unboundedEv"],"Splines::QuinticSplineBase::name":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4nameEv"],"Splines::QuinticSplineBase::numPoints":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase9numPointsEv"],"Splines::QuinticSplineBase::operator()":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBaseclE9real_type"],"Splines::QuinticSplineBase::operator()::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBaseclE9real_type"],"Splines::QuinticSplineBase::order":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase5orderEv"],"Splines::QuinticSplineBase::pushBack":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase8pushBackE9real_type9real_type"],"Splines::QuinticSplineBase::pushBack::x":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase8pushBackE9real_type9real_type"],"Splines::QuinticSplineBase::pushBack::y":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase8pushBackE9real_type9real_type"],"Splines::QuinticSplineBase::reserve":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase7reserveE7integer"],"Splines::QuinticSplineBase::reserve::npts":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase7reserveE7integer"],"Splines::QuinticSplineBase::reserve_external":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::reserve_external::n":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::reserve_external::p_Yp":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::reserve_external::p_Ypp":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::reserve_external::p_x":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::reserve_external::p_y":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::search":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase6searchER9real_type"],"Splines::QuinticSplineBase::search::x":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase6searchER9real_type"],"Splines::QuinticSplineBase::setOrigin":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase9setOriginE9real_type"],"Splines::QuinticSplineBase::setOrigin::x0":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase9setOriginE9real_type"],"Splines::QuinticSplineBase::setRange":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase8setRangeE9real_type9real_type"],"Splines::QuinticSplineBase::setRange::xmax":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase8setRangeE9real_type9real_type"],"Splines::QuinticSplineBase::setRange::xmin":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase8setRangeE9real_type9real_type"],"Splines::QuinticSplineBase::setup":[42,2,1,"_CPPv4N7Splines17QuinticSplineBase5setupERK16GenericContainer"],"Splines::QuinticSplineBase::setup::gc":[42,3,1,"_CPPv4N7Splines17QuinticSplineBase5setupERK16GenericContainer"],"Splines::QuinticSplineBase::type":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4typeEv"],"Splines::QuinticSplineBase::type_name":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase9type_nameEv"],"Splines::QuinticSplineBase::writeToStream":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase13writeToStreamER12ostream_type"],"Splines::QuinticSplineBase::writeToStream::s":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase13writeToStreamER12ostream_type"],"Splines::QuinticSplineBase::xBegin":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase6xBeginEv"],"Splines::QuinticSplineBase::xEnd":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4xEndEv"],"Splines::QuinticSplineBase::xMax":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4xMaxEv"],"Splines::QuinticSplineBase::xMin":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4xMinEv"],"Splines::QuinticSplineBase::xNode":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase5xNodeE7integer"],"Splines::QuinticSplineBase::xNode::i":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase5xNodeE7integer"],"Splines::QuinticSplineBase::yBegin":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase6yBeginEv"],"Splines::QuinticSplineBase::yEnd":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4yEndEv"],"Splines::QuinticSplineBase::yMax":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4yMaxEv"],"Splines::QuinticSplineBase::yMin":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase4yMinEv"],"Splines::QuinticSplineBase::yNode":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase5yNodeE7integer"],"Splines::QuinticSplineBase::yNode::i":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase5yNodeE7integer"],"Splines::QuinticSplineBase::ypNode":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase6ypNodeE7integer"],"Splines::QuinticSplineBase::ypNode::i":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase6ypNodeE7integer"],"Splines::QuinticSplineBase::yppNode":[42,2,1,"_CPPv4NK7Splines17QuinticSplineBase7yppNodeE7integer"],"Splines::QuinticSplineBase::yppNode::i":[42,3,1,"_CPPv4NK7Splines17QuinticSplineBase7yppNodeE7integer"],"Splines::QuinticSplineBase::~QuinticSplineBase":[42,2,1,"_CPPv4N7Splines17QuinticSplineBaseD0Ev"],"Splines::REGION_ABCDEM":[55,5,1,"_CPPv4N7Splines13REGION_ABCDEME"],"Splines::REGION_ABCDEM::region_A":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_AE"],"Splines::REGION_ABCDEM::region_B":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_BE"],"Splines::REGION_ABCDEM::region_C":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_CE"],"Splines::REGION_ABCDEM::region_D":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_DE"],"Splines::REGION_ABCDEM::region_E":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_EE"],"Splines::REGION_ABCDEM::region_M":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_ME"],"Splines::SPLINE_SET_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D15SPLINE_SET_TYPEE"],"Splines::SPLINE_VEC_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D15SPLINE_VEC_TYPEE"],"Splines::Spline":[43,1,1,"_CPPv4N7Splines6SplineE"],"Splines::Spline1D":[44,1,1,"_CPPv4N7Splines8Spline1DE"],"Splines::Spline1D::D":[44,2,1,"_CPPv4NK7Splines8Spline1D1DE9real_type"],"Splines::Spline1D::D::x":[44,3,1,"_CPPv4NK7Splines8Spline1D1DE9real_type"],"Splines::Spline1D::DD":[44,2,1,"_CPPv4NK7Splines8Spline1D2DDE9real_type"],"Splines::Spline1D::DD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D2DDE9real_type"],"Splines::Spline1D::DDD":[44,2,1,"_CPPv4NK7Splines8Spline1D3DDDE9real_type"],"Splines::Spline1D::DDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D3DDDE9real_type"],"Splines::Spline1D::DDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D4DDDDE9real_type"],"Splines::Spline1D::DDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D4DDDDE9real_type"],"Splines::Spline1D::DDDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D5DDDDDE9real_type"],"Splines::Spline1D::DDDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D5DDDDDE9real_type"],"Splines::Spline1D::Spline1D":[44,2,1,"_CPPv4N7Splines8Spline1D8Spline1DERKNSt6stringE"],"Splines::Spline1D::Spline1D::n":[44,3,1,"_CPPv4N7Splines8Spline1D8Spline1DERKNSt6stringE"],"Splines::Spline1D::build":[44,2,1,"_CPPv4N7Splines8Spline1D5buildEv"],"Splines::Spline1D::build::gc":[44,3,1,"_CPPv4N7Splines8Spline1D5buildERK16GenericContainer"],"Splines::Spline1D::build::incx":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DPK9real_type7integerPK9real_type7integer7integer"],"Splines::Spline1D::build::incy":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DPK9real_type7integerPK9real_type7integer7integer"],"Splines::Spline1D::build::n":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DPK9real_typePK9real_type7integer"],"Splines::Spline1D::build::tp":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DRK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::Spline1D::build::x":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DRK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::Spline1D::build::y":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DRK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::Spline1D::clear":[44,2,1,"_CPPv4N7Splines8Spline1D5clearEv"],"Splines::Spline1D::coeffs":[44,2,1,"_CPPv4NK7Splines8Spline1D6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline1D::coeffs::cfs":[44,3,1,"_CPPv4NK7Splines8Spline1D6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline1D::coeffs::nodes":[44,3,1,"_CPPv4NK7Splines8Spline1D6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline1D::coeffs::transpose":[44,3,1,"_CPPv4NK7Splines8Spline1D6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline1D::dropBack":[44,2,1,"_CPPv4N7Splines8Spline1D8dropBackEv"],"Splines::Spline1D::dump":[44,2,1,"_CPPv4NK7Splines8Spline1D4dumpER12ostream_type7integerPKc"],"Splines::Spline1D::dump::fname":[44,3,1,"_CPPv4NK7Splines8Spline1D4dumpEPKc7integerPKc"],"Splines::Spline1D::dump::header":[44,3,1,"_CPPv4NK7Splines8Spline1D4dumpER12ostream_type7integerPKc"],"Splines::Spline1D::dump::nintervals":[44,3,1,"_CPPv4NK7Splines8Spline1D4dumpER12ostream_type7integerPKc"],"Splines::Spline1D::dump::s":[44,3,1,"_CPPv4NK7Splines8Spline1D4dumpER12ostream_type7integerPKc"],"Splines::Spline1D::eval":[44,2,1,"_CPPv4NK7Splines8Spline1D4evalE9real_type"],"Splines::Spline1D::eval::x":[44,3,1,"_CPPv4NK7Splines8Spline1D4evalE9real_type"],"Splines::Spline1D::eval_D":[44,2,1,"_CPPv4NK7Splines8Spline1D6eval_DE9real_type"],"Splines::Spline1D::eval_D::x":[44,3,1,"_CPPv4NK7Splines8Spline1D6eval_DE9real_type"],"Splines::Spline1D::eval_DD":[44,2,1,"_CPPv4NK7Splines8Spline1D7eval_DDE9real_type"],"Splines::Spline1D::eval_DD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D7eval_DDE9real_type"],"Splines::Spline1D::eval_DDD":[44,2,1,"_CPPv4NK7Splines8Spline1D8eval_DDDE9real_type"],"Splines::Spline1D::eval_DDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D8eval_DDDE9real_type"],"Splines::Spline1D::eval_DDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D9eval_DDDDE9real_type"],"Splines::Spline1D::eval_DDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D9eval_DDDDE9real_type"],"Splines::Spline1D::eval_DDDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D10eval_DDDDDE9real_type"],"Splines::Spline1D::eval_DDDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D10eval_DDDDDE9real_type"],"Splines::Spline1D::id_D":[44,2,1,"_CPPv4NK7Splines8Spline1D4id_DE7integer9real_type"],"Splines::Spline1D::id_D::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D4id_DE7integer9real_type"],"Splines::Spline1D::id_D::x":[44,3,1,"_CPPv4NK7Splines8Spline1D4id_DE7integer9real_type"],"Splines::Spline1D::id_DD":[44,2,1,"_CPPv4NK7Splines8Spline1D5id_DDE7integer9real_type"],"Splines::Spline1D::id_DD::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D5id_DDE7integer9real_type"],"Splines::Spline1D::id_DD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D5id_DDE7integer9real_type"],"Splines::Spline1D::id_DDD":[44,2,1,"_CPPv4NK7Splines8Spline1D6id_DDDE7integer9real_type"],"Splines::Spline1D::id_DDD::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D6id_DDDE7integer9real_type"],"Splines::Spline1D::id_DDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D6id_DDDE7integer9real_type"],"Splines::Spline1D::id_DDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D7id_DDDDE7integer9real_type"],"Splines::Spline1D::id_DDDD::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D7id_DDDDE7integer9real_type"],"Splines::Spline1D::id_DDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D7id_DDDDE7integer9real_type"],"Splines::Spline1D::id_DDDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D8id_DDDDDE7integer9real_type"],"Splines::Spline1D::id_DDDDD::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D8id_DDDDDE7integer9real_type"],"Splines::Spline1D::id_DDDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D8id_DDDDDE7integer9real_type"],"Splines::Spline1D::id_eval":[44,2,1,"_CPPv4NK7Splines8Spline1D7id_evalE7integer9real_type"],"Splines::Spline1D::id_eval::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D7id_evalE7integer9real_type"],"Splines::Spline1D::id_eval::x":[44,3,1,"_CPPv4NK7Splines8Spline1D7id_evalE7integer9real_type"],"Splines::Spline1D::info":[44,2,1,"_CPPv4NK7Splines8Spline1D4infoEv"],"Splines::Spline1D::info::stream":[44,3,1,"_CPPv4NK7Splines8Spline1D4infoER12ostream_type"],"Splines::Spline1D::is_bounded":[44,2,1,"_CPPv4NK7Splines8Spline1D10is_boundedEv"],"Splines::Spline1D::is_closed":[44,2,1,"_CPPv4NK7Splines8Spline1D9is_closedEv"],"Splines::Spline1D::make_bounded":[44,2,1,"_CPPv4N7Splines8Spline1D12make_boundedEv"],"Splines::Spline1D::make_closed":[44,2,1,"_CPPv4N7Splines8Spline1D11make_closedEv"],"Splines::Spline1D::make_opened":[44,2,1,"_CPPv4N7Splines8Spline1D11make_openedEv"],"Splines::Spline1D::make_unbounded":[44,2,1,"_CPPv4N7Splines8Spline1D14make_unboundedEv"],"Splines::Spline1D::name":[44,2,1,"_CPPv4NK7Splines8Spline1D4nameEv"],"Splines::Spline1D::numPoints":[44,2,1,"_CPPv4NK7Splines8Spline1D9numPointsEv"],"Splines::Spline1D::operator()":[44,2,1,"_CPPv4NK7Splines8Spline1DclE9real_type"],"Splines::Spline1D::operator()::x":[44,3,1,"_CPPv4NK7Splines8Spline1DclE9real_type"],"Splines::Spline1D::order":[44,2,1,"_CPPv4NK7Splines8Spline1D5orderEv"],"Splines::Spline1D::pushBack":[44,2,1,"_CPPv4N7Splines8Spline1D8pushBackE9real_type9real_type"],"Splines::Spline1D::pushBack::x":[44,3,1,"_CPPv4N7Splines8Spline1D8pushBackE9real_type9real_type"],"Splines::Spline1D::pushBack::y":[44,3,1,"_CPPv4N7Splines8Spline1D8pushBackE9real_type9real_type"],"Splines::Spline1D::reserve":[44,2,1,"_CPPv4N7Splines8Spline1D7reserveE7integer"],"Splines::Spline1D::reserve::npts":[44,3,1,"_CPPv4N7Splines8Spline1D7reserveE7integer"],"Splines::Spline1D::setOrigin":[44,2,1,"_CPPv4N7Splines8Spline1D9setOriginE9real_type"],"Splines::Spline1D::setOrigin::x0":[44,3,1,"_CPPv4N7Splines8Spline1D9setOriginE9real_type"],"Splines::Spline1D::setRange":[44,2,1,"_CPPv4N7Splines8Spline1D8setRangeE9real_type9real_type"],"Splines::Spline1D::setRange::xmax":[44,3,1,"_CPPv4N7Splines8Spline1D8setRangeE9real_type9real_type"],"Splines::Spline1D::setRange::xmin":[44,3,1,"_CPPv4N7Splines8Spline1D8setRangeE9real_type9real_type"],"Splines::Spline1D::setup":[44,2,1,"_CPPv4N7Splines8Spline1D5setupERK16GenericContainer"],"Splines::Spline1D::setup::gc":[44,3,1,"_CPPv4N7Splines8Spline1D5setupERK16GenericContainer"],"Splines::Spline1D::type":[44,2,1,"_CPPv4NK7Splines8Spline1D4typeEv"],"Splines::Spline1D::type_name":[44,2,1,"_CPPv4NK7Splines8Spline1D9type_nameEv"],"Splines::Spline1D::writeToStream":[44,2,1,"_CPPv4NK7Splines8Spline1D13writeToStreamER12ostream_type"],"Splines::Spline1D::writeToStream::s":[44,3,1,"_CPPv4NK7Splines8Spline1D13writeToStreamER12ostream_type"],"Splines::Spline1D::xBegin":[44,2,1,"_CPPv4NK7Splines8Spline1D6xBeginEv"],"Splines::Spline1D::xEnd":[44,2,1,"_CPPv4NK7Splines8Spline1D4xEndEv"],"Splines::Spline1D::xMax":[44,2,1,"_CPPv4NK7Splines8Spline1D4xMaxEv"],"Splines::Spline1D::xMin":[44,2,1,"_CPPv4NK7Splines8Spline1D4xMinEv"],"Splines::Spline1D::xNode":[44,2,1,"_CPPv4NK7Splines8Spline1D5xNodeE7integer"],"Splines::Spline1D::xNode::i":[44,3,1,"_CPPv4NK7Splines8Spline1D5xNodeE7integer"],"Splines::Spline1D::yBegin":[44,2,1,"_CPPv4NK7Splines8Spline1D6yBeginEv"],"Splines::Spline1D::yEnd":[44,2,1,"_CPPv4NK7Splines8Spline1D4yEndEv"],"Splines::Spline1D::yMax":[44,2,1,"_CPPv4NK7Splines8Spline1D4yMaxEv"],"Splines::Spline1D::yMin":[44,2,1,"_CPPv4NK7Splines8Spline1D4yMinEv"],"Splines::Spline1D::yNode":[44,2,1,"_CPPv4NK7Splines8Spline1D5yNodeE7integer"],"Splines::Spline1D::yNode::i":[44,3,1,"_CPPv4NK7Splines8Spline1D5yNodeE7integer"],"Splines::Spline1D::~Spline1D":[44,2,1,"_CPPv4N7Splines8Spline1DD0Ev"],"Splines::Spline2D":[45,1,1,"_CPPv4N7Splines8Spline2DE"],"Splines::Spline2D::D":[45,2,1,"_CPPv4NK7Splines8Spline2D1DE9real_type9real_typeAL3E_9real_type"],"Splines::Spline2D::D::d":[45,3,1,"_CPPv4NK7Splines8Spline2D1DE9real_type9real_typeAL3E_9real_type"],"Splines::Spline2D::D::x":[45,3,1,"_CPPv4NK7Splines8Spline2D1DE9real_type9real_typeAL3E_9real_type"],"Splines::Spline2D::D::y":[45,3,1,"_CPPv4NK7Splines8Spline2D1DE9real_type9real_typeAL3E_9real_type"],"Splines::Spline2D::DD":[45,2,1,"_CPPv4NK7Splines8Spline2D2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Spline2D::DD::dd":[45,3,1,"_CPPv4NK7Splines8Spline2D2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Spline2D::DD::x":[45,3,1,"_CPPv4NK7Splines8Spline2D2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Spline2D::DD::y":[45,3,1,"_CPPv4NK7Splines8Spline2D2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Spline2D::Dx":[45,2,1,"_CPPv4NK7Splines8Spline2D2DxE9real_type9real_type"],"Splines::Spline2D::Dx::x":[45,3,1,"_CPPv4NK7Splines8Spline2D2DxE9real_type9real_type"],"Splines::Spline2D::Dx::y":[45,3,1,"_CPPv4NK7Splines8Spline2D2DxE9real_type9real_type"],"Splines::Spline2D::Dxx":[45,2,1,"_CPPv4NK7Splines8Spline2D3DxxE9real_type9real_type"],"Splines::Spline2D::Dxx::x":[45,3,1,"_CPPv4NK7Splines8Spline2D3DxxE9real_type9real_type"],"Splines::Spline2D::Dxx::y":[45,3,1,"_CPPv4NK7Splines8Spline2D3DxxE9real_type9real_type"],"Splines::Spline2D::Dxy":[45,2,1,"_CPPv4NK7Splines8Spline2D3DxyE9real_type9real_type"],"Splines::Spline2D::Dxy::x":[45,3,1,"_CPPv4NK7Splines8Spline2D3DxyE9real_type9real_type"],"Splines::Spline2D::Dxy::y":[45,3,1,"_CPPv4NK7Splines8Spline2D3DxyE9real_type9real_type"],"Splines::Spline2D::Dy":[45,2,1,"_CPPv4NK7Splines8Spline2D2DyE9real_type9real_type"],"Splines::Spline2D::Dy::x":[45,3,1,"_CPPv4NK7Splines8Spline2D2DyE9real_type9real_type"],"Splines::Spline2D::Dy::y":[45,3,1,"_CPPv4NK7Splines8Spline2D2DyE9real_type9real_type"],"Splines::Spline2D::Dyy":[45,2,1,"_CPPv4NK7Splines8Spline2D3DyyE9real_type9real_type"],"Splines::Spline2D::Dyy::x":[45,3,1,"_CPPv4NK7Splines8Spline2D3DyyE9real_type9real_type"],"Splines::Spline2D::Dyy::y":[45,3,1,"_CPPv4NK7Splines8Spline2D3DyyE9real_type9real_type"],"Splines::Spline2D::Spline2D":[45,2,1,"_CPPv4N7Splines8Spline2D8Spline2DERK6string"],"Splines::Spline2D::Spline2D::name":[45,3,1,"_CPPv4N7Splines8Spline2D8Spline2DERK6string"],"Splines::Spline2D::build":[45,2,1,"_CPPv4N7Splines8Spline2D5buildERK16GenericContainer"],"Splines::Spline2D::build::fortran_storage":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::build::gc":[45,3,1,"_CPPv4N7Splines8Spline2D5buildERK16GenericContainer"],"Splines::Spline2D::build::incx":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Spline2D::build::incy":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Spline2D::build::ldZ":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Spline2D::build::nx":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeE7integer7integerbb"],"Splines::Spline2D::build::ny":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeE7integer7integerbb"],"Splines::Spline2D::build::tp":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::build::transposed":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::build::x":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::build::y":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::build::z":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::clear":[45,2,1,"_CPPv4N7Splines8Spline2D5clearEv"],"Splines::Spline2D::eval":[45,2,1,"_CPPv4NK7Splines8Spline2D4evalE9real_type9real_type"],"Splines::Spline2D::eval::x":[45,3,1,"_CPPv4NK7Splines8Spline2D4evalE9real_type9real_type"],"Splines::Spline2D::eval::y":[45,3,1,"_CPPv4NK7Splines8Spline2D4evalE9real_type9real_type"],"Splines::Spline2D::eval_D_1":[45,2,1,"_CPPv4NK7Splines8Spline2D8eval_D_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1::x":[45,3,1,"_CPPv4NK7Splines8Spline2D8eval_D_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1::y":[45,3,1,"_CPPv4NK7Splines8Spline2D8eval_D_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1_1":[45,2,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1_1::x":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1_1::y":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1_2":[45,2,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_2E9real_type9real_type"],"Splines::Spline2D::eval_D_1_2::x":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_2E9real_type9real_type"],"Splines::Spline2D::eval_D_1_2::y":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2":[45,2,1,"_CPPv4NK7Splines8Spline2D8eval_D_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2::x":[45,3,1,"_CPPv4NK7Splines8Spline2D8eval_D_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2::y":[45,3,1,"_CPPv4NK7Splines8Spline2D8eval_D_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2_2":[45,2,1,"_CPPv4NK7Splines8Spline2D10eval_D_2_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2_2::x":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_2_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2_2::y":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_2_2E9real_type9real_type"],"Splines::Spline2D::info":[45,2,1,"_CPPv4NK7Splines8Spline2D4infoEv"],"Splines::Spline2D::info::stream":[45,3,1,"_CPPv4NK7Splines8Spline2D4infoER12ostream_type"],"Splines::Spline2D::is_x_bounded":[45,2,1,"_CPPv4NK7Splines8Spline2D12is_x_boundedEv"],"Splines::Spline2D::is_x_closed":[45,2,1,"_CPPv4NK7Splines8Spline2D11is_x_closedEv"],"Splines::Spline2D::is_y_bounded":[45,2,1,"_CPPv4NK7Splines8Spline2D12is_y_boundedEv"],"Splines::Spline2D::is_y_closed":[45,2,1,"_CPPv4NK7Splines8Spline2D11is_y_closedEv"],"Splines::Spline2D::make_x_bounded":[45,2,1,"_CPPv4N7Splines8Spline2D14make_x_boundedEv"],"Splines::Spline2D::make_x_closed":[45,2,1,"_CPPv4N7Splines8Spline2D13make_x_closedEv"],"Splines::Spline2D::make_x_opened":[45,2,1,"_CPPv4N7Splines8Spline2D13make_x_openedEv"],"Splines::Spline2D::make_x_unbounded":[45,2,1,"_CPPv4N7Splines8Spline2D16make_x_unboundedEv"],"Splines::Spline2D::make_y_bounded":[45,2,1,"_CPPv4N7Splines8Spline2D14make_y_boundedEv"],"Splines::Spline2D::make_y_closed":[45,2,1,"_CPPv4N7Splines8Spline2D13make_y_closedEv"],"Splines::Spline2D::make_y_opened":[45,2,1,"_CPPv4N7Splines8Spline2D13make_y_openedEv"],"Splines::Spline2D::make_y_unbounded":[45,2,1,"_CPPv4N7Splines8Spline2D16make_y_unboundedEv"],"Splines::Spline2D::name":[45,2,1,"_CPPv4NK7Splines8Spline2D4nameEv"],"Splines::Spline2D::numPointX":[45,2,1,"_CPPv4NK7Splines8Spline2D9numPointXEv"],"Splines::Spline2D::numPointY":[45,2,1,"_CPPv4NK7Splines8Spline2D9numPointYEv"],"Splines::Spline2D::operator()":[45,2,1,"_CPPv4NK7Splines8Spline2DclE9real_type9real_type"],"Splines::Spline2D::operator()::x":[45,3,1,"_CPPv4NK7Splines8Spline2DclE9real_type9real_type"],"Splines::Spline2D::operator()::y":[45,3,1,"_CPPv4NK7Splines8Spline2DclE9real_type9real_type"],"Splines::Spline2D::setup":[45,2,1,"_CPPv4N7Splines8Spline2D5setupERK16GenericContainer"],"Splines::Spline2D::setup::gc":[45,3,1,"_CPPv4N7Splines8Spline2D5setupERK16GenericContainer"],"Splines::Spline2D::type_name":[45,2,1,"_CPPv4NK7Splines8Spline2D9type_nameEv"],"Splines::Spline2D::writeToStream":[45,2,1,"_CPPv4NK7Splines8Spline2D13writeToStreamER12ostream_type"],"Splines::Spline2D::writeToStream::s":[45,3,1,"_CPPv4NK7Splines8Spline2D13writeToStreamER12ostream_type"],"Splines::Spline2D::xMax":[45,2,1,"_CPPv4NK7Splines8Spline2D4xMaxEv"],"Splines::Spline2D::xMin":[45,2,1,"_CPPv4NK7Splines8Spline2D4xMinEv"],"Splines::Spline2D::xNode":[45,2,1,"_CPPv4NK7Splines8Spline2D5xNodeE7integer"],"Splines::Spline2D::xNode::i":[45,3,1,"_CPPv4NK7Splines8Spline2D5xNodeE7integer"],"Splines::Spline2D::yMax":[45,2,1,"_CPPv4NK7Splines8Spline2D4yMaxEv"],"Splines::Spline2D::yMin":[45,2,1,"_CPPv4NK7Splines8Spline2D4yMinEv"],"Splines::Spline2D::yNode":[45,2,1,"_CPPv4NK7Splines8Spline2D5yNodeE7integer"],"Splines::Spline2D::yNode::i":[45,3,1,"_CPPv4NK7Splines8Spline2D5yNodeE7integer"],"Splines::Spline2D::zMax":[45,2,1,"_CPPv4NK7Splines8Spline2D4zMaxEv"],"Splines::Spline2D::zMin":[45,2,1,"_CPPv4NK7Splines8Spline2D4zMinEv"],"Splines::Spline2D::zNode":[45,2,1,"_CPPv4NK7Splines8Spline2D5zNodeE7integer7integer"],"Splines::Spline2D::zNode::i":[45,3,1,"_CPPv4NK7Splines8Spline2D5zNodeE7integer7integer"],"Splines::Spline2D::zNode::j":[45,3,1,"_CPPv4NK7Splines8Spline2D5zNodeE7integer7integer"],"Splines::Spline2D::~Spline2D":[45,2,1,"_CPPv4N7Splines8Spline2DD0Ev"],"Splines::Spline::D":[43,2,1,"_CPPv4NK7Splines6Spline1DE9real_type"],"Splines::Spline::D::x":[43,3,1,"_CPPv4NK7Splines6Spline1DE9real_type"],"Splines::Spline::DD":[43,2,1,"_CPPv4NK7Splines6Spline2DDE9real_type"],"Splines::Spline::DD::x":[43,3,1,"_CPPv4NK7Splines6Spline2DDE9real_type"],"Splines::Spline::DDD":[43,2,1,"_CPPv4NK7Splines6Spline3DDDE9real_type"],"Splines::Spline::DDD::x":[43,3,1,"_CPPv4NK7Splines6Spline3DDDE9real_type"],"Splines::Spline::DDDD":[43,2,1,"_CPPv4NK7Splines6Spline4DDDDE9real_type"],"Splines::Spline::DDDDD":[43,2,1,"_CPPv4NK7Splines6Spline5DDDDDE9real_type"],"Splines::Spline::Spline":[43,2,1,"_CPPv4N7Splines6Spline6SplineERK6string"],"Splines::Spline::Spline::name":[43,3,1,"_CPPv4N7Splines6Spline6SplineERK6string"],"Splines::Spline::build":[43,2,1,"_CPPv4N7Splines6Spline5buildEv"],"Splines::Spline::build::gc":[43,3,1,"_CPPv4N7Splines6Spline5buildERK16GenericContainer"],"Splines::Spline::build::incx":[43,3,1,"_CPPv4N7Splines6Spline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::Spline::build::incy":[43,3,1,"_CPPv4N7Splines6Spline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::Spline::build::n":[43,3,1,"_CPPv4N7Splines6Spline5buildEPK9real_typePK9real_type7integer"],"Splines::Spline::build::x":[43,3,1,"_CPPv4N7Splines6Spline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::Spline::build::y":[43,3,1,"_CPPv4N7Splines6Spline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::Spline::clear":[43,2,1,"_CPPv4N7Splines6Spline5clearEv"],"Splines::Spline::coeffs":[43,2,1,"_CPPv4NK7Splines6Spline6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline::coeffs::cfs":[43,3,1,"_CPPv4NK7Splines6Spline6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline::coeffs::nodes":[43,3,1,"_CPPv4NK7Splines6Spline6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline::coeffs::transpose":[43,3,1,"_CPPv4NK7Splines6Spline6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline::dropBack":[43,2,1,"_CPPv4N7Splines6Spline8dropBackEv"],"Splines::Spline::dump":[43,2,1,"_CPPv4NK7Splines6Spline4dumpER12ostream_type7integerPKc"],"Splines::Spline::dump::fname":[43,3,1,"_CPPv4NK7Splines6Spline4dumpEPKc7integerPKc"],"Splines::Spline::dump::header":[43,3,1,"_CPPv4NK7Splines6Spline4dumpER12ostream_type7integerPKc"],"Splines::Spline::dump::nintervals":[43,3,1,"_CPPv4NK7Splines6Spline4dumpER12ostream_type7integerPKc"],"Splines::Spline::dump::s":[43,3,1,"_CPPv4NK7Splines6Spline4dumpER12ostream_type7integerPKc"],"Splines::Spline::eval":[43,2,1,"_CPPv4NK7Splines6Spline4evalE9real_type"],"Splines::Spline::eval::x":[43,3,1,"_CPPv4NK7Splines6Spline4evalE9real_type"],"Splines::Spline::eval_D":[43,2,1,"_CPPv4NK7Splines6Spline6eval_DE9real_type"],"Splines::Spline::eval_D::x":[43,3,1,"_CPPv4NK7Splines6Spline6eval_DE9real_type"],"Splines::Spline::eval_DD":[43,2,1,"_CPPv4NK7Splines6Spline7eval_DDE9real_type"],"Splines::Spline::eval_DD::x":[43,3,1,"_CPPv4NK7Splines6Spline7eval_DDE9real_type"],"Splines::Spline::eval_DDD":[43,2,1,"_CPPv4NK7Splines6Spline8eval_DDDE9real_type"],"Splines::Spline::eval_DDD::x":[43,3,1,"_CPPv4NK7Splines6Spline8eval_DDDE9real_type"],"Splines::Spline::eval_DDDD":[43,2,1,"_CPPv4NK7Splines6Spline9eval_DDDDE9real_type"],"Splines::Spline::eval_DDDD::x":[43,3,1,"_CPPv4NK7Splines6Spline9eval_DDDDE9real_type"],"Splines::Spline::eval_DDDDD":[43,2,1,"_CPPv4NK7Splines6Spline10eval_DDDDDE9real_type"],"Splines::Spline::eval_DDDDD::x":[43,3,1,"_CPPv4NK7Splines6Spline10eval_DDDDDE9real_type"],"Splines::Spline::id_D":[43,2,1,"_CPPv4NK7Splines6Spline4id_DE7integer9real_type"],"Splines::Spline::id_D::ni":[43,3,1,"_CPPv4NK7Splines6Spline4id_DE7integer9real_type"],"Splines::Spline::id_D::x":[43,3,1,"_CPPv4NK7Splines6Spline4id_DE7integer9real_type"],"Splines::Spline::id_DD":[43,2,1,"_CPPv4NK7Splines6Spline5id_DDE7integer9real_type"],"Splines::Spline::id_DD::ni":[43,3,1,"_CPPv4NK7Splines6Spline5id_DDE7integer9real_type"],"Splines::Spline::id_DD::x":[43,3,1,"_CPPv4NK7Splines6Spline5id_DDE7integer9real_type"],"Splines::Spline::id_DDD":[43,2,1,"_CPPv4NK7Splines6Spline6id_DDDE7integer9real_type"],"Splines::Spline::id_DDD::ni":[43,3,1,"_CPPv4NK7Splines6Spline6id_DDDE7integer9real_type"],"Splines::Spline::id_DDD::x":[43,3,1,"_CPPv4NK7Splines6Spline6id_DDDE7integer9real_type"],"Splines::Spline::id_DDDD":[43,2,1,"_CPPv4NK7Splines6Spline7id_DDDDE7integer9real_type"],"Splines::Spline::id_DDDDD":[43,2,1,"_CPPv4NK7Splines6Spline8id_DDDDDE7integer9real_type"],"Splines::Spline::id_eval":[43,2,1,"_CPPv4NK7Splines6Spline7id_evalE7integer9real_type"],"Splines::Spline::id_eval::ni":[43,3,1,"_CPPv4NK7Splines6Spline7id_evalE7integer9real_type"],"Splines::Spline::id_eval::x":[43,3,1,"_CPPv4NK7Splines6Spline7id_evalE7integer9real_type"],"Splines::Spline::info":[43,2,1,"_CPPv4NK7Splines6Spline4infoEv"],"Splines::Spline::info::stream":[43,3,1,"_CPPv4NK7Splines6Spline4infoER12ostream_type"],"Splines::Spline::is_bounded":[43,2,1,"_CPPv4NK7Splines6Spline10is_boundedEv"],"Splines::Spline::is_closed":[43,2,1,"_CPPv4NK7Splines6Spline9is_closedEv"],"Splines::Spline::is_extended_constant":[43,2,1,"_CPPv4NK7Splines6Spline20is_extended_constantEv"],"Splines::Spline::make_bounded":[43,2,1,"_CPPv4N7Splines6Spline12make_boundedEv"],"Splines::Spline::make_closed":[43,2,1,"_CPPv4N7Splines6Spline11make_closedEv"],"Splines::Spline::make_extended_constant":[43,2,1,"_CPPv4N7Splines6Spline22make_extended_constantEv"],"Splines::Spline::make_extended_not_constant":[43,2,1,"_CPPv4N7Splines6Spline26make_extended_not_constantEv"],"Splines::Spline::make_opened":[43,2,1,"_CPPv4N7Splines6Spline11make_openedEv"],"Splines::Spline::make_unbounded":[43,2,1,"_CPPv4N7Splines6Spline14make_unboundedEv"],"Splines::Spline::name":[43,2,1,"_CPPv4NK7Splines6Spline4nameEv"],"Splines::Spline::numPoints":[43,2,1,"_CPPv4NK7Splines6Spline9numPointsEv"],"Splines::Spline::operator()":[43,2,1,"_CPPv4NK7Splines6SplineclE9real_type"],"Splines::Spline::operator()::x":[43,3,1,"_CPPv4NK7Splines6SplineclE9real_type"],"Splines::Spline::order":[43,2,1,"_CPPv4NK7Splines6Spline5orderEv"],"Splines::Spline::pushBack":[43,2,1,"_CPPv4N7Splines6Spline8pushBackE9real_type9real_type"],"Splines::Spline::pushBack::x":[43,3,1,"_CPPv4N7Splines6Spline8pushBackE9real_type9real_type"],"Splines::Spline::pushBack::y":[43,3,1,"_CPPv4N7Splines6Spline8pushBackE9real_type9real_type"],"Splines::Spline::reserve":[43,2,1,"_CPPv4N7Splines6Spline7reserveE7integer"],"Splines::Spline::reserve::npts":[43,3,1,"_CPPv4N7Splines6Spline7reserveE7integer"],"Splines::Spline::search":[43,2,1,"_CPPv4NK7Splines6Spline6searchER9real_type"],"Splines::Spline::search::x":[43,3,1,"_CPPv4NK7Splines6Spline6searchER9real_type"],"Splines::Spline::setOrigin":[43,2,1,"_CPPv4N7Splines6Spline9setOriginE9real_type"],"Splines::Spline::setOrigin::x0":[43,3,1,"_CPPv4N7Splines6Spline9setOriginE9real_type"],"Splines::Spline::setRange":[43,2,1,"_CPPv4N7Splines6Spline8setRangeE9real_type9real_type"],"Splines::Spline::setRange::xmax":[43,3,1,"_CPPv4N7Splines6Spline8setRangeE9real_type9real_type"],"Splines::Spline::setRange::xmin":[43,3,1,"_CPPv4N7Splines6Spline8setRangeE9real_type9real_type"],"Splines::Spline::setup":[43,2,1,"_CPPv4N7Splines6Spline5setupERK16GenericContainer"],"Splines::Spline::setup::gc":[43,3,1,"_CPPv4N7Splines6Spline5setupERK16GenericContainer"],"Splines::Spline::type":[43,2,1,"_CPPv4NK7Splines6Spline4typeEv"],"Splines::Spline::type_name":[43,2,1,"_CPPv4NK7Splines6Spline9type_nameEv"],"Splines::Spline::writeToStream":[43,2,1,"_CPPv4NK7Splines6Spline13writeToStreamER12ostream_type"],"Splines::Spline::writeToStream::s":[43,3,1,"_CPPv4NK7Splines6Spline13writeToStreamER12ostream_type"],"Splines::Spline::xBegin":[43,2,1,"_CPPv4NK7Splines6Spline6xBeginEv"],"Splines::Spline::xEnd":[43,2,1,"_CPPv4NK7Splines6Spline4xEndEv"],"Splines::Spline::xMax":[43,2,1,"_CPPv4NK7Splines6Spline4xMaxEv"],"Splines::Spline::xMin":[43,2,1,"_CPPv4NK7Splines6Spline4xMinEv"],"Splines::Spline::xNode":[43,2,1,"_CPPv4NK7Splines6Spline5xNodeE7integer"],"Splines::Spline::xNode::i":[43,3,1,"_CPPv4NK7Splines6Spline5xNodeE7integer"],"Splines::Spline::yBegin":[43,2,1,"_CPPv4NK7Splines6Spline6yBeginEv"],"Splines::Spline::yEnd":[43,2,1,"_CPPv4NK7Splines6Spline4yEndEv"],"Splines::Spline::yMax":[43,2,1,"_CPPv4NK7Splines6Spline4yMaxEv"],"Splines::Spline::yMin":[43,2,1,"_CPPv4NK7Splines6Spline4yMinEv"],"Splines::Spline::yNode":[43,2,1,"_CPPv4NK7Splines6Spline5yNodeE7integer"],"Splines::Spline::yNode::i":[43,3,1,"_CPPv4NK7Splines6Spline5yNodeE7integer"],"Splines::Spline::~Spline":[43,2,1,"_CPPv4N7Splines6SplineD0Ev"],"Splines::SplineSet":[46,1,1,"_CPPv4N7Splines9SplineSetE"],"Splines::SplineSet::BinarySearch":[47,1,1,"_CPPv4N7Splines9SplineSet12BinarySearchE"],"Splines::SplineSet::BinarySearch::BinarySearch":[47,2,1,"_CPPv4N7Splines9SplineSet12BinarySearch12BinarySearchEv"],"Splines::SplineSet::BinarySearch::DATA_TYPE":[47,6,1,"_CPPv4N7Splines9SplineSet12BinarySearch9DATA_TYPEE"],"Splines::SplineSet::BinarySearch::clear":[47,2,1,"_CPPv4N7Splines9SplineSet12BinarySearch5clearEv"],"Splines::SplineSet::BinarySearch::get_elem":[47,2,1,"_CPPv4NK7Splines9SplineSet12BinarySearch8get_elemE7integer"],"Splines::SplineSet::BinarySearch::get_elem::i":[47,3,1,"_CPPv4NK7Splines9SplineSet12BinarySearch8get_elemE7integer"],"Splines::SplineSet::BinarySearch::insert":[47,2,1,"_CPPv4N7Splines9SplineSet12BinarySearch6insertERKNSt6stringE7integer"],"Splines::SplineSet::BinarySearch::insert::id":[47,3,1,"_CPPv4N7Splines9SplineSet12BinarySearch6insertERKNSt6stringE7integer"],"Splines::SplineSet::BinarySearch::insert::position":[47,3,1,"_CPPv4N7Splines9SplineSet12BinarySearch6insertERKNSt6stringE7integer"],"Splines::SplineSet::BinarySearch::n_elem":[47,2,1,"_CPPv4NK7Splines9SplineSet12BinarySearch6n_elemEv"],"Splines::SplineSet::BinarySearch::search":[47,2,1,"_CPPv4NK7Splines9SplineSet12BinarySearch6searchERKNSt6stringE"],"Splines::SplineSet::BinarySearch::search::id":[47,3,1,"_CPPv4NK7Splines9SplineSet12BinarySearch6searchERKNSt6stringE"],"Splines::SplineSet::BinarySearch::~BinarySearch":[47,2,1,"_CPPv4N7Splines9SplineSet12BinarySearchD0Ev"],"Splines::SplineSet::D":[46,2,1,"_CPPv4NK7Splines9SplineSet1DE9real_type7integer"],"Splines::SplineSet::D::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet1DE9real_type7integer"],"Splines::SplineSet::D::x":[46,3,1,"_CPPv4NK7Splines9SplineSet1DE9real_type7integer"],"Splines::SplineSet::DD":[46,2,1,"_CPPv4NK7Splines9SplineSet2DDE9real_type7integer"],"Splines::SplineSet::DD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet2DDE9real_type7integer"],"Splines::SplineSet::DD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet2DDE9real_type7integer"],"Splines::SplineSet::DDD":[46,2,1,"_CPPv4NK7Splines9SplineSet3DDDE9real_type7integer"],"Splines::SplineSet::DDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet3DDDE9real_type7integer"],"Splines::SplineSet::DDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet3DDDE9real_type7integer"],"Splines::SplineSet::DDDD":[46,2,1,"_CPPv4NK7Splines9SplineSet4DDDDE9real_type7integer"],"Splines::SplineSet::DDDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet4DDDDE9real_type7integer"],"Splines::SplineSet::DDDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet4DDDDE9real_type7integer"],"Splines::SplineSet::DDDDD":[46,2,1,"_CPPv4NK7Splines9SplineSet5DDDDDE9real_type7integer"],"Splines::SplineSet::DDDDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet5DDDDDE9real_type7integer"],"Splines::SplineSet::DDDDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet5DDDDDE9real_type7integer"],"Splines::SplineSet::SplineSet":[46,2,1,"_CPPv4N7Splines9SplineSet9SplineSetERK6string"],"Splines::SplineSet::SplineSet::name":[46,3,1,"_CPPv4N7Splines9SplineSet9SplineSetERK6string"],"Splines::SplineSet::build":[46,2,1,"_CPPv4N7Splines9SplineSet5buildERK16GenericContainer"],"Splines::SplineSet::build::X":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::Y":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::Yp":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::gc":[46,3,1,"_CPPv4N7Splines9SplineSet5buildERK16GenericContainer"],"Splines::SplineSet::build::headers":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::npts":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::nspl":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::stype":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::dump_table":[46,2,1,"_CPPv4NK7Splines9SplineSet10dump_tableER12ostream_type7integer"],"Splines::SplineSet::dump_table::num_points":[46,3,1,"_CPPv4NK7Splines9SplineSet10dump_tableER12ostream_type7integer"],"Splines::SplineSet::dump_table::s":[46,3,1,"_CPPv4NK7Splines9SplineSet10dump_tableER12ostream_type7integer"],"Splines::SplineSet::eval":[46,2,1,"_CPPv4NK7Splines9SplineSet4evalERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2":[46,2,1,"_CPPv4NK7Splines9SplineSet5eval2ERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2ERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2E7integer9real_typePC9real_type7integer"],"Splines::SplineSet::eval2::indep":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2ERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2::name":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2E9real_typePKcPKc"],"Splines::SplineSet::eval2::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2E9real_type7integer7integer"],"Splines::SplineSet::eval2::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2ERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2::zeta":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2E9real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2::zetas":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2ERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D":[46,2,1,"_CPPv4NK7Splines9SplineSet7eval2_DERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DE7integer9real_typePC9real_type7integer"],"Splines::SplineSet::eval2_D::indep":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D::name":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DE9real_typePKcPKc"],"Splines::SplineSet::eval2_D::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DE9real_type7integer7integer"],"Splines::SplineSet::eval2_D::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D::zeta":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DE9real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D::zetas":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD":[46,2,1,"_CPPv4NK7Splines9SplineSet8eval2_DDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDE7integer9real_typePC9real_type7integer"],"Splines::SplineSet::eval2_DD::indep":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDE9real_typePKcPKc"],"Splines::SplineSet::eval2_DD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDE9real_type7integer7integer"],"Splines::SplineSet::eval2_DD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD::zeta":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDE9real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD::zetas":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD":[46,2,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDE7integer9real_typePC9real_type7integer"],"Splines::SplineSet::eval2_DDD::indep":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDE9real_typePKcPKc"],"Splines::SplineSet::eval2_DDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDE9real_type7integer7integer"],"Splines::SplineSet::eval2_DDD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD::zeta":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDE9real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD::zetas":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalE9real_typePC9real_type7integer"],"Splines::SplineSet::eval::name":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalE9real_typePKc"],"Splines::SplineSet::eval::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalE9real_type7integer"],"Splines::SplineSet::eval::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval::vec":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval::x":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalE9real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_D":[46,2,1,"_CPPv4NK7Splines9SplineSet6eval_DERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_D::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_D::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DE9real_typePC9real_type7integer"],"Splines::SplineSet::eval_D::name":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DE9real_typePKc"],"Splines::SplineSet::eval_D::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DE9real_type7integer"],"Splines::SplineSet::eval_D::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_D::vec":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_D::x":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DE9real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DD":[46,2,1,"_CPPv4NK7Splines9SplineSet7eval_DDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DD::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDE9real_typePC9real_type7integer"],"Splines::SplineSet::eval_DD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDE9real_typePKc"],"Splines::SplineSet::eval_DD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDE9real_type7integer"],"Splines::SplineSet::eval_DD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DD::vec":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDE9real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDD":[46,2,1,"_CPPv4NK7Splines9SplineSet8eval_DDDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDD::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDE9real_typePC9real_type7integer"],"Splines::SplineSet::eval_DDD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDE9real_typePKc"],"Splines::SplineSet::eval_DDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDE9real_type7integer"],"Splines::SplineSet::eval_DDD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDD::vec":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDE9real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDDD":[46,2,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::eval_DDDD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_typePC9real_type7integer"],"Splines::SplineSet::eval_DDDD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_typePKc"],"Splines::SplineSet::eval_DDDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_type7integer"],"Splines::SplineSet::eval_DDDD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::eval_DDDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::eval_DDDDD":[46,2,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::eval_DDDDD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_typePC9real_type7integer"],"Splines::SplineSet::eval_DDDDD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_typePKc"],"Splines::SplineSet::eval_DDDDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_type7integer"],"Splines::SplineSet::eval_DDDDD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::eval_DDDDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::getPosition":[46,2,1,"_CPPv4NK7Splines9SplineSet11getPositionEPKc"],"Splines::SplineSet::getPosition::hdr":[46,3,1,"_CPPv4NK7Splines9SplineSet11getPositionEPKc"],"Splines::SplineSet::getSpline":[46,2,1,"_CPPv4NK7Splines9SplineSet9getSplineEPKc"],"Splines::SplineSet::getSpline::hdr":[46,3,1,"_CPPv4NK7Splines9SplineSet9getSplineEPKc"],"Splines::SplineSet::getSpline::i":[46,3,1,"_CPPv4NK7Splines9SplineSet9getSplineE7integer"],"Splines::SplineSet::get_headers":[46,2,1,"_CPPv4NK7Splines9SplineSet11get_headersERNSt6vectorINSt6stringEEE"],"Splines::SplineSet::get_headers::names":[46,3,1,"_CPPv4NK7Splines9SplineSet11get_headersERNSt6vectorINSt6stringEEE"],"Splines::SplineSet::header":[46,2,1,"_CPPv4NK7Splines9SplineSet6headerE7integer"],"Splines::SplineSet::header::i":[46,3,1,"_CPPv4NK7Splines9SplineSet6headerE7integer"],"Splines::SplineSet::info":[46,2,1,"_CPPv4NK7Splines9SplineSet4infoEv"],"Splines::SplineSet::info::stream":[46,3,1,"_CPPv4NK7Splines9SplineSet4infoER12ostream_type"],"Splines::SplineSet::isMonotone":[46,2,1,"_CPPv4NK7Splines9SplineSet10isMonotoneE7integer"],"Splines::SplineSet::isMonotone::i":[46,3,1,"_CPPv4NK7Splines9SplineSet10isMonotoneE7integer"],"Splines::SplineSet::name":[46,2,1,"_CPPv4NK7Splines9SplineSet4nameEv"],"Splines::SplineSet::name_list":[46,2,1,"_CPPv4NK7Splines9SplineSet9name_listEv"],"Splines::SplineSet::numPoints":[46,2,1,"_CPPv4NK7Splines9SplineSet9numPointsEv"],"Splines::SplineSet::numSplines":[46,2,1,"_CPPv4NK7Splines9SplineSet10numSplinesEv"],"Splines::SplineSet::operator()":[46,2,1,"_CPPv4NK7Splines9SplineSetclE9real_type7integer"],"Splines::SplineSet::operator()::spl":[46,3,1,"_CPPv4NK7Splines9SplineSetclE9real_type7integer"],"Splines::SplineSet::operator()::x":[46,3,1,"_CPPv4NK7Splines9SplineSetclE9real_type7integer"],"Splines::SplineSet::setup":[46,2,1,"_CPPv4N7Splines9SplineSet5setupERK16GenericContainer"],"Splines::SplineSet::setup::gc":[46,3,1,"_CPPv4N7Splines9SplineSet5setupERK16GenericContainer"],"Splines::SplineSet::type":[46,2,1,"_CPPv4NK7Splines9SplineSet4typeEv"],"Splines::SplineSet::xMax":[46,2,1,"_CPPv4NK7Splines9SplineSet4xMaxEv"],"Splines::SplineSet::xMin":[46,2,1,"_CPPv4NK7Splines9SplineSet4xMinEv"],"Splines::SplineSet::xNode":[46,2,1,"_CPPv4NK7Splines9SplineSet5xNodeE7integer"],"Splines::SplineSet::xNode::npt":[46,3,1,"_CPPv4NK7Splines9SplineSet5xNodeE7integer"],"Splines::SplineSet::xNodes":[46,2,1,"_CPPv4NK7Splines9SplineSet6xNodesEv"],"Splines::SplineSet::yMax":[46,2,1,"_CPPv4NK7Splines9SplineSet4yMaxEPKc"],"Splines::SplineSet::yMax::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet4yMaxEPKc"],"Splines::SplineSet::yMin":[46,2,1,"_CPPv4NK7Splines9SplineSet4yMinEPKc"],"Splines::SplineSet::yMin::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet4yMinEPKc"],"Splines::SplineSet::yNode":[46,2,1,"_CPPv4NK7Splines9SplineSet5yNodeE7integer7integer"],"Splines::SplineSet::yNode::npt":[46,3,1,"_CPPv4NK7Splines9SplineSet5yNodeE7integer7integer"],"Splines::SplineSet::yNode::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet5yNodeE7integer7integer"],"Splines::SplineSet::yNodes":[46,2,1,"_CPPv4NK7Splines9SplineSet6yNodesE7integer"],"Splines::SplineSet::yNodes::i":[46,3,1,"_CPPv4NK7Splines9SplineSet6yNodesE7integer"],"Splines::SplineSet::~SplineSet":[46,2,1,"_CPPv4N7Splines9SplineSetD0Ev"],"Splines::SplineSurf":[48,1,1,"_CPPv4N7Splines10SplineSurfE"],"Splines::SplineSurf::D":[48,2,1,"_CPPv4NK7Splines10SplineSurf1DE9real_type9real_typeAL3E_9real_type"],"Splines::SplineSurf::D::d":[48,3,1,"_CPPv4NK7Splines10SplineSurf1DE9real_type9real_typeAL3E_9real_type"],"Splines::SplineSurf::D::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf1DE9real_type9real_typeAL3E_9real_type"],"Splines::SplineSurf::D::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf1DE9real_type9real_typeAL3E_9real_type"],"Splines::SplineSurf::DD":[48,2,1,"_CPPv4NK7Splines10SplineSurf2DDE9real_type9real_typeAL6E_9real_type"],"Splines::SplineSurf::DD::dd":[48,3,1,"_CPPv4NK7Splines10SplineSurf2DDE9real_type9real_typeAL6E_9real_type"],"Splines::SplineSurf::DD::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf2DDE9real_type9real_typeAL6E_9real_type"],"Splines::SplineSurf::DD::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf2DDE9real_type9real_typeAL6E_9real_type"],"Splines::SplineSurf::Dx":[48,2,1,"_CPPv4NK7Splines10SplineSurf2DxE9real_type9real_type"],"Splines::SplineSurf::Dx::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf2DxE9real_type9real_type"],"Splines::SplineSurf::Dx::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf2DxE9real_type9real_type"],"Splines::SplineSurf::Dxx":[48,2,1,"_CPPv4NK7Splines10SplineSurf3DxxE9real_type9real_type"],"Splines::SplineSurf::Dxx::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf3DxxE9real_type9real_type"],"Splines::SplineSurf::Dxx::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf3DxxE9real_type9real_type"],"Splines::SplineSurf::Dxy":[48,2,1,"_CPPv4NK7Splines10SplineSurf3DxyE9real_type9real_type"],"Splines::SplineSurf::Dxy::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf3DxyE9real_type9real_type"],"Splines::SplineSurf::Dxy::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf3DxyE9real_type9real_type"],"Splines::SplineSurf::Dy":[48,2,1,"_CPPv4NK7Splines10SplineSurf2DyE9real_type9real_type"],"Splines::SplineSurf::Dy::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf2DyE9real_type9real_type"],"Splines::SplineSurf::Dy::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf2DyE9real_type9real_type"],"Splines::SplineSurf::Dyy":[48,2,1,"_CPPv4NK7Splines10SplineSurf3DyyE9real_type9real_type"],"Splines::SplineSurf::Dyy::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf3DyyE9real_type9real_type"],"Splines::SplineSurf::Dyy::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf3DyyE9real_type9real_type"],"Splines::SplineSurf::SplineSurf":[48,2,1,"_CPPv4N7Splines10SplineSurf10SplineSurfERK6string"],"Splines::SplineSurf::SplineSurf::name":[48,3,1,"_CPPv4N7Splines10SplineSurf10SplineSurfERK6string"],"Splines::SplineSurf::build":[48,2,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::build::fortran_storage":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::build::gc":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildERK16GenericContainer"],"Splines::SplineSurf::build::incx":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::SplineSurf::build::incy":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::SplineSurf::build::ldZ":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::SplineSurf::build::nx":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::SplineSurf::build::ny":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::SplineSurf::build::transposed":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::build::x":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::build::y":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::build::z":[48,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::clear":[48,2,1,"_CPPv4N7Splines10SplineSurf5clearEv"],"Splines::SplineSurf::eval":[48,2,1,"_CPPv4NK7Splines10SplineSurf4evalE9real_type9real_type"],"Splines::SplineSurf::eval::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf4evalE9real_type9real_type"],"Splines::SplineSurf::eval::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf4evalE9real_type9real_type"],"Splines::SplineSurf::eval_D_1":[48,2,1,"_CPPv4NK7Splines10SplineSurf8eval_D_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf8eval_D_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf8eval_D_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_1":[48,2,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_1::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_1::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_2":[48,2,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_2::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_2::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2":[48,2,1,"_CPPv4NK7Splines10SplineSurf8eval_D_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf8eval_D_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf8eval_D_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2_2":[48,2,1,"_CPPv4NK7Splines10SplineSurf10eval_D_2_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2_2::x":[48,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_2_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2_2::y":[48,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_2_2E9real_type9real_type"],"Splines::SplineSurf::info":[48,2,1,"_CPPv4NK7Splines10SplineSurf4infoEv"],"Splines::SplineSurf::info::stream":[48,3,1,"_CPPv4NK7Splines10SplineSurf4infoER12ostream_type"],"Splines::SplineSurf::is_x_bounded":[48,2,1,"_CPPv4NK7Splines10SplineSurf12is_x_boundedEv"],"Splines::SplineSurf::is_x_closed":[48,2,1,"_CPPv4NK7Splines10SplineSurf11is_x_closedEv"],"Splines::SplineSurf::is_y_bounded":[48,2,1,"_CPPv4NK7Splines10SplineSurf12is_y_boundedEv"],"Splines::SplineSurf::is_y_closed":[48,2,1,"_CPPv4NK7Splines10SplineSurf11is_y_closedEv"],"Splines::SplineSurf::make_x_bounded":[48,2,1,"_CPPv4N7Splines10SplineSurf14make_x_boundedEv"],"Splines::SplineSurf::make_x_closed":[48,2,1,"_CPPv4N7Splines10SplineSurf13make_x_closedEv"],"Splines::SplineSurf::make_x_opened":[48,2,1,"_CPPv4N7Splines10SplineSurf13make_x_openedEv"],"Splines::SplineSurf::make_x_unbounded":[48,2,1,"_CPPv4N7Splines10SplineSurf16make_x_unboundedEv"],"Splines::SplineSurf::make_y_bounded":[48,2,1,"_CPPv4N7Splines10SplineSurf14make_y_boundedEv"],"Splines::SplineSurf::make_y_closed":[48,2,1,"_CPPv4N7Splines10SplineSurf13make_y_closedEv"],"Splines::SplineSurf::make_y_opened":[48,2,1,"_CPPv4N7Splines10SplineSurf13make_y_openedEv"],"Splines::SplineSurf::make_y_unbounded":[48,2,1,"_CPPv4N7Splines10SplineSurf16make_y_unboundedEv"],"Splines::SplineSurf::name":[48,2,1,"_CPPv4NK7Splines10SplineSurf4nameEv"],"Splines::SplineSurf::numPointX":[48,2,1,"_CPPv4NK7Splines10SplineSurf9numPointXEv"],"Splines::SplineSurf::numPointY":[48,2,1,"_CPPv4NK7Splines10SplineSurf9numPointYEv"],"Splines::SplineSurf::operator()":[48,2,1,"_CPPv4NK7Splines10SplineSurfclE9real_type9real_type"],"Splines::SplineSurf::operator()::x":[48,3,1,"_CPPv4NK7Splines10SplineSurfclE9real_type9real_type"],"Splines::SplineSurf::operator()::y":[48,3,1,"_CPPv4NK7Splines10SplineSurfclE9real_type9real_type"],"Splines::SplineSurf::setup":[48,2,1,"_CPPv4N7Splines10SplineSurf5setupERK16GenericContainer"],"Splines::SplineSurf::setup::gc":[48,3,1,"_CPPv4N7Splines10SplineSurf5setupERK16GenericContainer"],"Splines::SplineSurf::type_name":[48,2,1,"_CPPv4NK7Splines10SplineSurf9type_nameEv"],"Splines::SplineSurf::writeToStream":[48,2,1,"_CPPv4NK7Splines10SplineSurf13writeToStreamER12ostream_type"],"Splines::SplineSurf::writeToStream::s":[48,3,1,"_CPPv4NK7Splines10SplineSurf13writeToStreamER12ostream_type"],"Splines::SplineSurf::xMax":[48,2,1,"_CPPv4NK7Splines10SplineSurf4xMaxEv"],"Splines::SplineSurf::xMin":[48,2,1,"_CPPv4NK7Splines10SplineSurf4xMinEv"],"Splines::SplineSurf::xNode":[48,2,1,"_CPPv4NK7Splines10SplineSurf5xNodeE7integer"],"Splines::SplineSurf::xNode::i":[48,3,1,"_CPPv4NK7Splines10SplineSurf5xNodeE7integer"],"Splines::SplineSurf::yMax":[48,2,1,"_CPPv4NK7Splines10SplineSurf4yMaxEv"],"Splines::SplineSurf::yMin":[48,2,1,"_CPPv4NK7Splines10SplineSurf4yMinEv"],"Splines::SplineSurf::yNode":[48,2,1,"_CPPv4NK7Splines10SplineSurf5yNodeE7integer"],"Splines::SplineSurf::yNode::i":[48,3,1,"_CPPv4NK7Splines10SplineSurf5yNodeE7integer"],"Splines::SplineSurf::zMax":[48,2,1,"_CPPv4NK7Splines10SplineSurf4zMaxEv"],"Splines::SplineSurf::zMin":[48,2,1,"_CPPv4NK7Splines10SplineSurf4zMinEv"],"Splines::SplineSurf::zNode":[48,2,1,"_CPPv4NK7Splines10SplineSurf5zNodeE7integer7integer"],"Splines::SplineSurf::zNode::i":[48,3,1,"_CPPv4NK7Splines10SplineSurf5zNodeE7integer7integer"],"Splines::SplineSurf::zNode::j":[48,3,1,"_CPPv4NK7Splines10SplineSurf5zNodeE7integer7integer"],"Splines::SplineSurf::~SplineSurf":[48,2,1,"_CPPv4N7Splines10SplineSurfD0Ev"],"Splines::SplineType1D":[59,5,1,"_CPPv4N7Splines12SplineType1DE"],"Splines::SplineType1D::AKIMA_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D10AKIMA_TYPEE"],"Splines::SplineType1D::BESSEL_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D11BESSEL_TYPEE"],"Splines::SplineType1D::CONSTANT_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D13CONSTANT_TYPEE"],"Splines::SplineType1D::CUBIC_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D10CUBIC_TYPEE"],"Splines::SplineType1D::HERMITE_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D12HERMITE_TYPEE"],"Splines::SplineType1D::LINEAR_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D11LINEAR_TYPEE"],"Splines::SplineType1D::PCHIP_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D10PCHIP_TYPEE"],"Splines::SplineType1D::QUINTIC_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D12QUINTIC_TYPEE"],"Splines::SplineType1D::SPLINE_SET_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D15SPLINE_SET_TYPEE"],"Splines::SplineType1D::SPLINE_VEC_TYPE":[59,4,1,"_CPPv4N7Splines12SplineType1D15SPLINE_VEC_TYPEE"],"Splines::SplineType2D":[57,5,1,"_CPPv4N7Splines12SplineType2DE"],"Splines::SplineType2D::AKIMA2D_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType2D12AKIMA2D_TYPEE"],"Splines::SplineType2D::BICUBIC_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType2D12BICUBIC_TYPEE"],"Splines::SplineType2D::BILINEAR_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType2D13BILINEAR_TYPEE"],"Splines::SplineType2D::BIQUINTIC_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType2D14BIQUINTIC_TYPEE"],"Splines::SplineVec":[49,1,1,"_CPPv4N7Splines9SplineVecE"],"Splines::SplineVec::CatmullRom":[49,2,1,"_CPPv4N7Splines9SplineVec10CatmullRomEv"],"Splines::SplineVec::D":[49,2,1,"_CPPv4NK7Splines9SplineVec1DE9real_type7integer"],"Splines::SplineVec::D::i":[49,3,1,"_CPPv4NK7Splines9SplineVec1DE9real_type7integer"],"Splines::SplineVec::D::x":[49,3,1,"_CPPv4NK7Splines9SplineVec1DE9real_type7integer"],"Splines::SplineVec::DD":[49,2,1,"_CPPv4NK7Splines9SplineVec2DDE9real_type7integer"],"Splines::SplineVec::DD::i":[49,3,1,"_CPPv4NK7Splines9SplineVec2DDE9real_type7integer"],"Splines::SplineVec::DD::x":[49,3,1,"_CPPv4NK7Splines9SplineVec2DDE9real_type7integer"],"Splines::SplineVec::DDD":[49,2,1,"_CPPv4NK7Splines9SplineVec3DDDE9real_type7integer"],"Splines::SplineVec::DDD::i":[49,3,1,"_CPPv4NK7Splines9SplineVec3DDDE9real_type7integer"],"Splines::SplineVec::DDD::x":[49,3,1,"_CPPv4NK7Splines9SplineVec3DDDE9real_type7integer"],"Splines::SplineVec::DDDD":[49,2,1,"_CPPv4NK7Splines9SplineVec4DDDDE9real_type7integer"],"Splines::SplineVec::DDDD::i":[49,3,1,"_CPPv4NK7Splines9SplineVec4DDDDE9real_type7integer"],"Splines::SplineVec::DDDD::x":[49,3,1,"_CPPv4NK7Splines9SplineVec4DDDDE9real_type7integer"],"Splines::SplineVec::DDDDD":[49,2,1,"_CPPv4NK7Splines9SplineVec5DDDDDE9real_type7integer"],"Splines::SplineVec::DDDDD::i":[49,3,1,"_CPPv4NK7Splines9SplineVec5DDDDDE9real_type7integer"],"Splines::SplineVec::DDDDD::x":[49,3,1,"_CPPv4NK7Splines9SplineVec5DDDDDE9real_type7integer"],"Splines::SplineVec::SplineVec":[49,2,1,"_CPPv4N7Splines9SplineVec9SplineVecERK6string"],"Splines::SplineVec::SplineVec::name":[49,3,1,"_CPPv4N7Splines9SplineVec9SplineVecERK6string"],"Splines::SplineVec::build":[49,2,1,"_CPPv4N7Splines9SplineVec5buildERK16GenericContainer"],"Splines::SplineVec::build::gc":[49,3,1,"_CPPv4N7Splines9SplineVec5buildERK16GenericContainer"],"Splines::SplineVec::can_extend":[49,2,1,"_CPPv4NK7Splines9SplineVec10can_extendEv"],"Splines::SplineVec::curvature":[49,2,1,"_CPPv4NK7Splines9SplineVec9curvatureE9real_type"],"Splines::SplineVec::curvature::x":[49,3,1,"_CPPv4NK7Splines9SplineVec9curvatureE9real_type"],"Splines::SplineVec::curvature_D":[49,2,1,"_CPPv4NK7Splines9SplineVec11curvature_DE9real_type"],"Splines::SplineVec::curvature_D::x":[49,3,1,"_CPPv4NK7Splines9SplineVec11curvature_DE9real_type"],"Splines::SplineVec::dimension":[49,2,1,"_CPPv4NK7Splines9SplineVec9dimensionEv"],"Splines::SplineVec::dump_table":[49,2,1,"_CPPv4NK7Splines9SplineVec10dump_tableER12ostream_type7integer"],"Splines::SplineVec::dump_table::num_points":[49,3,1,"_CPPv4NK7Splines9SplineVec10dump_tableER12ostream_type7integer"],"Splines::SplineVec::dump_table::s":[49,3,1,"_CPPv4NK7Splines9SplineVec10dump_tableER12ostream_type7integer"],"Splines::SplineVec::eval":[49,2,1,"_CPPv4NK7Splines9SplineVec4evalERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval::i":[49,3,1,"_CPPv4NK7Splines9SplineVec4evalE9real_type7integer"],"Splines::SplineVec::eval::inc":[49,3,1,"_CPPv4NK7Splines9SplineVec4evalE9real_typePC9real_type7integer"],"Splines::SplineVec::eval::vals":[49,3,1,"_CPPv4NK7Splines9SplineVec4evalERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval::x":[49,3,1,"_CPPv4NK7Splines9SplineVec4evalERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_D":[49,2,1,"_CPPv4NK7Splines9SplineVec6eval_DERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_D::i":[49,3,1,"_CPPv4NK7Splines9SplineVec6eval_DE9real_type7integer"],"Splines::SplineVec::eval_D::inc":[49,3,1,"_CPPv4NK7Splines9SplineVec6eval_DE9real_typePC9real_type7integer"],"Splines::SplineVec::eval_D::vals":[49,3,1,"_CPPv4NK7Splines9SplineVec6eval_DERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_D::x":[49,3,1,"_CPPv4NK7Splines9SplineVec6eval_DERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DD":[49,2,1,"_CPPv4NK7Splines9SplineVec7eval_DDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DD::i":[49,3,1,"_CPPv4NK7Splines9SplineVec7eval_DDE9real_type7integer"],"Splines::SplineVec::eval_DD::inc":[49,3,1,"_CPPv4NK7Splines9SplineVec7eval_DDE9real_typePC9real_type7integer"],"Splines::SplineVec::eval_DD::vals":[49,3,1,"_CPPv4NK7Splines9SplineVec7eval_DDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DD::x":[49,3,1,"_CPPv4NK7Splines9SplineVec7eval_DDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDD":[49,2,1,"_CPPv4NK7Splines9SplineVec8eval_DDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDD::i":[49,3,1,"_CPPv4NK7Splines9SplineVec8eval_DDDE9real_type7integer"],"Splines::SplineVec::eval_DDD::inc":[49,3,1,"_CPPv4NK7Splines9SplineVec8eval_DDDE9real_typePC9real_type7integer"],"Splines::SplineVec::eval_DDD::vals":[49,3,1,"_CPPv4NK7Splines9SplineVec8eval_DDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDD::x":[49,3,1,"_CPPv4NK7Splines9SplineVec8eval_DDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDD":[49,2,1,"_CPPv4NK7Splines9SplineVec9eval_DDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDD::i":[49,3,1,"_CPPv4NK7Splines9SplineVec9eval_DDDDE9real_type7integer"],"Splines::SplineVec::eval_DDDD::inc":[49,3,1,"_CPPv4NK7Splines9SplineVec9eval_DDDDE9real_typePC9real_type7integer"],"Splines::SplineVec::eval_DDDD::vals":[49,3,1,"_CPPv4NK7Splines9SplineVec9eval_DDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDD::x":[49,3,1,"_CPPv4NK7Splines9SplineVec9eval_DDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDDD":[49,2,1,"_CPPv4NK7Splines9SplineVec10eval_DDDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDDD::i":[49,3,1,"_CPPv4NK7Splines9SplineVec10eval_DDDDDE9real_type7integer"],"Splines::SplineVec::eval_DDDDD::inc":[49,3,1,"_CPPv4NK7Splines9SplineVec10eval_DDDDDE9real_typePC9real_type7integer"],"Splines::SplineVec::eval_DDDDD::vals":[49,3,1,"_CPPv4NK7Splines9SplineVec10eval_DDDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDDD::x":[49,3,1,"_CPPv4NK7Splines9SplineVec10eval_DDDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::info":[49,2,1,"_CPPv4NK7Splines9SplineVec4infoEv"],"Splines::SplineVec::info::stream":[49,3,1,"_CPPv4NK7Splines9SplineVec4infoER12ostream_type"],"Splines::SplineVec::is_closed":[49,2,1,"_CPPv4NK7Splines9SplineVec9is_closedEv"],"Splines::SplineVec::make_buonded":[49,2,1,"_CPPv4N7Splines9SplineVec12make_buondedEv"],"Splines::SplineVec::make_closed":[49,2,1,"_CPPv4N7Splines9SplineVec11make_closedEv"],"Splines::SplineVec::make_open":[49,2,1,"_CPPv4N7Splines9SplineVec9make_openEv"],"Splines::SplineVec::make_unbounded":[49,2,1,"_CPPv4N7Splines9SplineVec14make_unboundedEv"],"Splines::SplineVec::name":[49,2,1,"_CPPv4NK7Splines9SplineVec4nameEv"],"Splines::SplineVec::numPoints":[49,2,1,"_CPPv4NK7Splines9SplineVec9numPointsEv"],"Splines::SplineVec::operator()":[49,2,1,"_CPPv4NK7Splines9SplineVecclE9real_type7integer"],"Splines::SplineVec::operator()::i":[49,3,1,"_CPPv4NK7Splines9SplineVecclE9real_type7integer"],"Splines::SplineVec::operator()::x":[49,3,1,"_CPPv4NK7Splines9SplineVecclE9real_type7integer"],"Splines::SplineVec::search":[49,2,1,"_CPPv4NK7Splines9SplineVec6searchER9real_type"],"Splines::SplineVec::search::x":[49,3,1,"_CPPv4NK7Splines9SplineVec6searchER9real_type"],"Splines::SplineVec::setKnots":[49,2,1,"_CPPv4N7Splines9SplineVec8setKnotsEPK9real_type"],"Splines::SplineVec::setKnots::X":[49,3,1,"_CPPv4N7Splines9SplineVec8setKnotsEPK9real_type"],"Splines::SplineVec::setKnotsCentripetal":[49,2,1,"_CPPv4N7Splines9SplineVec19setKnotsCentripetalEv"],"Splines::SplineVec::setKnotsChordLength":[49,2,1,"_CPPv4N7Splines9SplineVec19setKnotsChordLengthEv"],"Splines::SplineVec::setKnotsFoley":[49,2,1,"_CPPv4N7Splines9SplineVec13setKnotsFoleyEv"],"Splines::SplineVec::setup":[49,2,1,"_CPPv4N7Splines9SplineVec5setupERK16GenericContainer"],"Splines::SplineVec::setup::Y":[49,3,1,"_CPPv4N7Splines9SplineVec5setupE7integer7integerPPK9real_type"],"Splines::SplineVec::setup::dim":[49,3,1,"_CPPv4N7Splines9SplineVec5setupE7integer7integerPPK9real_type"],"Splines::SplineVec::setup::gc":[49,3,1,"_CPPv4N7Splines9SplineVec5setupERK16GenericContainer"],"Splines::SplineVec::setup::ldY":[49,3,1,"_CPPv4N7Splines9SplineVec5setupE7integer7integerPK9real_type7integer"],"Splines::SplineVec::setup::npts":[49,3,1,"_CPPv4N7Splines9SplineVec5setupE7integer7integerPPK9real_type"],"Splines::SplineVec::type":[49,2,1,"_CPPv4NK7Splines9SplineVec4typeEv"],"Splines::SplineVec::xMax":[49,2,1,"_CPPv4NK7Splines9SplineVec4xMaxEv"],"Splines::SplineVec::xMin":[49,2,1,"_CPPv4NK7Splines9SplineVec4xMinEv"],"Splines::SplineVec::xNode":[49,2,1,"_CPPv4NK7Splines9SplineVec5xNodeE7integer"],"Splines::SplineVec::xNode::npt":[49,3,1,"_CPPv4NK7Splines9SplineVec5xNodeE7integer"],"Splines::SplineVec::xNodes":[49,2,1,"_CPPv4NK7Splines9SplineVec6xNodesEv"],"Splines::SplineVec::yNode":[49,2,1,"_CPPv4NK7Splines9SplineVec5yNodeE7integer7integer"],"Splines::SplineVec::yNode::j":[49,3,1,"_CPPv4NK7Splines9SplineVec5yNodeE7integer7integer"],"Splines::SplineVec::yNode::npt":[49,3,1,"_CPPv4NK7Splines9SplineVec5yNodeE7integer7integer"],"Splines::SplineVec::~SplineVec":[49,2,1,"_CPPv4N7Splines9SplineVecD0Ev"],"Splines::backtrace":[117,2,1,"_CPPv4N7Splines9backtraceER12ostream_type"],"Splines::centripetal":[104,2,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::alpha":[104,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::dim":[104,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::ld_pnts":[104,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::npts":[104,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::pnts":[104,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::t":[104,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::checkCubicSplineMonotonicity":[105,2,1,"_CPPv4N7Splines28checkCubicSplineMonotonicityEPK9real_typePK9real_typePK9real_type7integer"],"Splines::checkCubicSplineMonotonicity::X":[105,3,1,"_CPPv4N7Splines28checkCubicSplineMonotonicityEPK9real_typePK9real_typePK9real_type7integer"],"Splines::checkCubicSplineMonotonicity::Y":[105,3,1,"_CPPv4N7Splines28checkCubicSplineMonotonicityEPK9real_typePK9real_typePK9real_type7integer"],"Splines::checkCubicSplineMonotonicity::Yp":[105,3,1,"_CPPv4N7Splines28checkCubicSplineMonotonicityEPK9real_typePK9real_typePK9real_type7integer"],"Splines::checkCubicSplineMonotonicity::npts":[105,3,1,"_CPPv4N7Splines28checkCubicSplineMonotonicityEPK9real_typePK9real_typePK9real_type7integer"],"Splines::chordal":[119,2,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::chordal::dim":[119,3,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::chordal::ld_pnts":[119,3,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::chordal::npts":[119,3,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::chordal::pnts":[119,3,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::chordal::t":[119,3,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::curvature":[112,2,1,"_CPPv4N7Splines9curvatureE9real_typeRK6SplineRK6Spline"],"Splines::curvature::X":[112,3,1,"_CPPv4N7Splines9curvatureE9real_typeRK6SplineRK6Spline"],"Splines::curvature::Y":[112,3,1,"_CPPv4N7Splines9curvatureE9real_typeRK6SplineRK6Spline"],"Splines::curvature::s":[112,3,1,"_CPPv4N7Splines9curvatureE9real_typeRK6SplineRK6Spline"],"Splines::curvature_D":[115,2,1,"_CPPv4N7Splines11curvature_DE9real_typeRK6SplineRK6Spline"],"Splines::curvature_D::X":[115,3,1,"_CPPv4N7Splines11curvature_DE9real_typeRK6SplineRK6Spline"],"Splines::curvature_D::Y":[115,3,1,"_CPPv4N7Splines11curvature_DE9real_typeRK6SplineRK6Spline"],"Splines::curvature_D::s":[115,3,1,"_CPPv4N7Splines11curvature_DE9real_typeRK6SplineRK6Spline"],"Splines::curvature_DD":[107,2,1,"_CPPv4N7Splines12curvature_DDE9real_typeRK6SplineRK6Spline"],"Splines::curvature_DD::X":[107,3,1,"_CPPv4N7Splines12curvature_DDE9real_typeRK6SplineRK6Spline"],"Splines::curvature_DD::Y":[107,3,1,"_CPPv4N7Splines12curvature_DDE9real_typeRK6SplineRK6Spline"],"Splines::curvature_DD::s":[107,3,1,"_CPPv4N7Splines12curvature_DDE9real_typeRK6SplineRK6Spline"],"Splines::get_region":[108,2,1,"_CPPv4N7Splines10get_regionE9real_type9real_type"],"Splines::get_region::alpha":[108,3,1,"_CPPv4N7Splines10get_regionE9real_type9real_type"],"Splines::get_region::beta":[108,3,1,"_CPPv4N7Splines10get_regionE9real_type9real_type"],"Splines::integer":[165,6,1,"_CPPv4N7Splines7integerE"],"Splines::max_abs":[116,2,1,"_CPPv4N7Splines7max_absE9real_type9real_type"],"Splines::max_abs::a":[116,3,1,"_CPPv4N7Splines7max_absE9real_type9real_type"],"Splines::max_abs::b":[116,3,1,"_CPPv4N7Splines7max_absE9real_type9real_type"],"Splines::min_abs":[113,2,1,"_CPPv4N7Splines7min_absE9real_type9real_type"],"Splines::min_abs::a":[113,3,1,"_CPPv4N7Splines7min_absE9real_type9real_type"],"Splines::min_abs::b":[113,3,1,"_CPPv4N7Splines7min_absE9real_type9real_type"],"Splines::new_Spline1D":[109,2,1,"_CPPv4N7Splines12new_Spline1DERK6string12SplineType1D"],"Splines::new_Spline1D::_name":[109,3,1,"_CPPv4N7Splines12new_Spline1DERK6string12SplineType1D"],"Splines::new_Spline1D::tp":[109,3,1,"_CPPv4N7Splines12new_Spline1DERK6string12SplineType1D"],"Splines::ostream_type":[166,6,1,"_CPPv4N7Splines12ostream_typeE"],"Splines::real_type":[167,6,1,"_CPPv4N7Splines9real_typeE"],"Splines::region_A":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_AE"],"Splines::region_B":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_BE"],"Splines::region_C":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_CE"],"Splines::region_D":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_DE"],"Splines::region_E":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_EE"],"Splines::region_M":[55,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_ME"],"Splines::signTest":[106,2,1,"_CPPv4N7Splines8signTestEK9real_typeK9real_type"],"Splines::signTest::a":[106,3,1,"_CPPv4N7Splines8signTestEK9real_typeK9real_type"],"Splines::signTest::b":[106,3,1,"_CPPv4N7Splines8signTestEK9real_typeK9real_type"],"Splines::spline_type_1D":[170,7,1,"_CPPv4N7Splines14spline_type_1DE"],"Splines::uniform":[110,2,1,"_CPPv4N7Splines7uniformE7integer7integerPK9real_type7integerP9real_type"],"Splines::uniform::npts":[110,3,1,"_CPPv4N7Splines7uniformE7integer7integerPK9real_type7integerP9real_type"],"Splines::uniform::t":[110,3,1,"_CPPv4N7Splines7uniformE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal":[111,2,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal::dim":[111,3,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal::ld_pnts":[111,3,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal::npts":[111,3,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal::pnts":[111,3,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal::t":[111,3,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],BaseHermite:[171,1,1,"_CPPv411BaseHermite"],SPLINES_CONFIG_HH:[52,0,1,"c.SPLINES_CONFIG_HH"],SPLINES_C_INTERFACE_H:[1,0,1,"c.SPLINES_C_INTERFACE_H"],SPLINES_HH:[51,0,1,"c.SPLINES_HH"],SPLINES_UTILS_HH:[53,0,1,"c.SPLINES_UTILS_HH"],SPLINE_build2:[7,2,1,"_CPPv413SPLINE_build2PKdPKdi"],SPLINE_build:[8,2,1,"_CPPv412SPLINE_buildv"],SPLINE_delete:[21,2,1,"_CPPv413SPLINE_deletePKc"],SPLINE_eval:[11,2,1,"_CPPv411SPLINE_evald"],SPLINE_eval_D:[10,2,1,"_CPPv413SPLINE_eval_Dd"],SPLINE_eval_DD:[16,2,1,"_CPPv414SPLINE_eval_DDd"],SPLINE_eval_DDD:[14,2,1,"_CPPv415SPLINE_eval_DDDd"],SPLINE_eval_DDDD:[13,2,1,"_CPPv416SPLINE_eval_DDDDd"],SPLINE_eval_DDDDD:[19,2,1,"_CPPv417SPLINE_eval_DDDDDd"],SPLINE_get_type_name:[15,2,1,"_CPPv420SPLINE_get_type_namev"],SPLINE_init:[12,2,1,"_CPPv411SPLINE_initv"],SPLINE_mem_ptr:[17,2,1,"_CPPv414SPLINE_mem_ptrPKc"],SPLINE_new:[20,2,1,"_CPPv410SPLINE_newPKcPKc"],SPLINE_print:[18,2,1,"_CPPv412SPLINE_printv"],SPLINE_push:[6,2,1,"_CPPv411SPLINE_pushdd"],SPLINE_select:[9,2,1,"_CPPv413SPLINE_selectPKc"],Spline1D:[172,1,1,"_CPPv48Spline1D"],Spline2D:[173,1,1,"_CPPv48Spline2D"],SplineSet:[174,1,1,"_CPPv49SplineSet"],SplineVec:[175,1,1,"_CPPv49SplineVec"]}},objnames:{"0":["c","macro","C macro"],"1":["cpp","class","C++ class"],"2":["cpp","function","C++ function"],"3":["cpp","functionParam","C++ function parameter"],"4":["cpp","enumerator","C++ enumerator"],"5":["cpp","enum","C++ enum"],"6":["cpp","type","C++ type"],"7":["cpp","member","C++ member"]},objtypes:{"0":"c:macro","1":"cpp:class","2":"cpp:function","3":"cpp:functionParam","4":"cpp:enumerator","5":"cpp:enum","6":"cpp:type","7":"cpp:member"},terms:{"100":187,"120":137,"146":155,"148":[27,196],"164":[27,196],"168":140,"180":140,"192":140,"1970":[28,196],"1978":[27,196],"1980":[120,196],"1984":120,"2016":[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164],"2020":[188,196],"238":196,"246":196,"256":151,"300":120,"304":120,"360":140,"3rd":46,"4th":[13,28,29,35,36,37,38,39,40,41,42,43,44,46,49,187],"589":[28,196],"5th":[19,44,46,49,187],"602":[28,196],"720":140,"break":[137,144,146,150,153,157,159],"case":[137,144,146,150,153,157,159,163],"char":[9,15,17,20,21,23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,125,126,129,130,131,132,133,134,150,151,152,155,156,158,160,166,170],"class":[124,126,128,130,132,134,136,138,141,143,145,147,149,151,154,156,158,160,169,189,190,191,192,194,195,196],"const":[7,9,15,17,20,21,23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,103,104,105,106,107,109,110,111,112,114,115,118,119,120,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,163,164,170],"default":[137,143,146,150,153],"enum":[138,144,147,156,169],"final":[36,137],"float":167,"function":[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,125,144,169,171,172,173,174,175,187,188,189,190,191,192],"int":[6,7,8,9,12,18,20,21,23,24,46,106,125,144,151,156,165],"new":[20,23,150,157,187,189,190,191,192],"public":[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,124,126,128,130,132,134,136,138,141,143,145,147,149,151,154,156,158,160,171,172,173,174,175],"return":[23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,105,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,187,188,189,190,191,192],"static":[23,103,106,108,109,113,116,123,125,137,144,146,155,157,163,164,188],"switch":[137,144,146,150,153,157,159,163],"throw":155,"true":[27,30,31,32,33,34,45,48,135,139,142,143,148,153,154,156,189,190,191,192],"universit\u00e0":196,"void":[17,23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,103,104,110,111,114,117,118,119,120,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,163,164],"while":[123,127,137,139,144,146,150,153,155,188],AND:[164,196],ARE:[164,196],BUT:[164,196],FOR:[164,196],NOT:[150,164,196],SUCH:[164,196],THE:[164,196],The:[164,187,196],USE:[164,196],Use:[28,29,35,36,37,38,39,40,41,42],Using:196,___:[124,126,127,128,130,132,134,136,138,140,141,143,144,145,146,147,149,151,152,154,155,156,157,158,160,163,164],____:[124,126,127,128,130,132,134,136,138,140,141,143,144,145,146,147,149,151,152,154,155,156,157,158,160],_____:[126,143,152,160],______:[155,156],__clang__:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163],__cplusplu:24,__file__:[123,127,137,144,146],__gnuc__:[156,162],__header:152,__line__:[123,127,137,144,146],__y:152,__yp:152,_is_monoton:150,_memeori:149,_memori:[136,143,156],_msc_ver:155,_name:[109,157],_nspl:152,_pointer:[150,153],_spline:150,_valu:[150,153],about:[27,30,31,32,33,34,48],abov:[164,196],abs:[123,144,146,150,153,155,163],abssl:144,abssr:144,acc:153,access:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,48],accumul:125,acm:[27,28,196],actual:[12,15,18],add:[28,29,35,36,37,38,39,40,41,42,43,44],added:39,adjust:144,advis:[164,196],again:131,akima2d:125,akima2d_typ:[57,156,159],akima2dsplin:[31,63,121,122,125,126,156,159,168],akima:[27,28,146,155,157,159,170,196],akima_build:[123,124,146],akima_on:123,akima_quint:[58,146,147],akima_typ:[23,59,124,150,156,157],akimasmooth:125,akimasplin:[23,37,61,121,122,123,124,150,156,157,168],alia:[27,30,31,32,33,34,48],alias:[28,29,35,36,37,38,39,40,41,42,43,44],all:[46,49,155,164,196],alloc:[28,29,35,36,37,38,39,40,41,42,43,44,135,137,139,142,146,148,150,152,153,154,155,156,161],allow:150,along:[27,30,31,32,33,34,45,48],alpha:[104,108,144,155,156,163],alreadi:[135,139,142,148],ammetto:155,anal:120,analysi:196,ani:[164,196],anoth:151,apb:144,api:195,approxim:[155,164,187],approximate_length:[171,187],april:120,arch:188,argument:[7,150,187],aris:[164,196],arrai:187,associ:[57,59],assum:[144,155],author:164,auto:150,avail:[150,155,196],azzera:155,b00:125,b00x:125,b00y:125,b01:125,b10:125,b11:125,backtrac:[93,121,122,156,168],bad:[150,155],base5:[171,187],base5_d:[171,187],base5_dd:[171,187],base5_ddd:[171,187],base5_dddd:[171,187],base5_ddddd:[171,187],base:[45,121,139,140,148,153,156,168,186,187,193],base_d:[139,140,148,153,156,171,187],base_dd:[139,140,148,153,156,171,187],base_ddd:[139,140,148,153,156,171,187],base_dddd:[140,148,156],base_ddddd:[140,148,156],basehermit:[178,186,193,194],basehermitewrapp:[187,188],basepoint:[150,153],basevalu:[150,153],basi:187,basic_ostream:[156,166],bc0:[36,137,138],bc_begin:137,bc_end:137,bcn:[36,137,138],begin:[131,152,155,187],bertolazzi:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,196],bessel:[29,146,155,157,170],bessel_build:[127,128,146],bessel_quint:[58,146,147],bessel_typ:[23,59,128,150,156,157],besselsplin:[23,37,65,121,122,127,128,150,156,157,168],beta:[108,144,163],bezier:187,bezier_to_hermit:[171,187],bicub:[125,129,159],bicubic_typ:[57,156,159],bicubicsplin:[31,67,121,122,129,130,156,159,168],bicubicsplinebas:[27,30,48,67,121,122,126,130,161,168],bili3:[130,161],bili5:[132,161],bilinear3:[140,156,161],bilinear5:[140,156,161],bilinear:[34,133,159],bilinear_typ:[57,156,159],bilinearsplin:[48,71,121,122,133,134,156,159,168],bin:188,binari:[28,29,35,36,37,38,39,40,41,42,43,150,164,196],binarysearch:[46,88,121,122,150,151,152,154,156,168],biquint:[131,159],biquintic_typ:[57,156,159],biquinticsplin:[33,69,121,122,131,132,156,159,168],biquinticsplinebas:[32,48,69,121,122,132,161,168],bivari:[27,161,196],block:[141,156,187],bool:[6,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,49,135,136,139,142,143,146,148,149,150,153,154,155,156,158,159,160,161],bot:[137,163],boudari:36,boundari:[36,123,152],brodli:144,build:[7,8,23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,123,124,127,128,129,131,135,136,137,138,139,140,141,142,143,144,145,146,147,149,150,151,152,153,154,155,156,157,158,159,160,161,172,173,174,187,189,190,191],build_linux:196,build_osx:196,build_win:196,built:196,buona:150,busi:[164,196],butland:[120,144],by0:125,by1:125,c_str:[123,127,135,137,140,142,144,146,152,155,161],calcolo:[123,127,129,131],can:[139,142,148,150,187,196],can_extend:[49,154],cancel:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48],cannot:[140,150],carlson:[120,196],caso:127,catmullrom:[49,153,154,175,192],caus:[164,196],cbrt:155,cccccc:187,center:144,centripet:[92,121,122,155,156,168,175,192],cerca:[123,127,137,144,146,150,152],cerco:150,cerr:156,cfs:[28,29,35,36,37,38,39,40,41,42,43,44,135,136,139,142,143,148,149,156,158],chang:[28,29,35,36,37,38,39,40,41,42,43,44,144,151],check:[23,105,144,150,155],checkcubicsplinemonoton:[92,121,122,150,155,156,168],checknan:[123,127,137,144,146],chord:[175,192],chordal:[92,121,122,155,156,168],clang:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163],classdef:[187,189,190,191,192],classif:150,clc:188,clear:[23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,48,135,136,139,142,143,148,149,150,151,152,156,158,160,161,188],close:[152,156],cmath:[60,62,66,68,70,81,83,87,89,90,92,98,123,125,129,131,133,144,146,150,152,153,155,161],cmd1:188,cmd:188,code:[164,187,196],coeff:[28,29,35,36,37,38,39,40,41,42,43,44,135,136,139,142,143,148,149,156,158],coeffici:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,125],col:161,column:[27,30,31,32,33,34,45,46,48,104,110,111,114,118,119,151,152,161,187],com:196,compat:[23,39,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163],compil:[188,195],compilesplineslib:[178,194,196],completar:153,completenam:188,compon:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49],comput:[104,107,110,111,112,114,115,118,119,120,150,188],computechord:[153,154],conclus:164,condit:[36,164,196],consequenti:[164,196],consit:36,const_cast:152,const_iter:152,constant:[35,143,152,155,157,170],constant_typ:[23,59,136,150,152,156,157],constantsplin:[23,43,73,121,122,135,136,150,156,157,168],construct:[28,120],constructor:[23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,163],contain:[3,28,29,35,36,37,38,39,40,41,42,43,46,164],continu:[125,155],contract:[164,196],contributor:[164,196],coordin:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48],copi:156,copia:155,copy_n:[139,148,150,153,155],copyright:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,196],copysplin:[28,29,36,37,38,40,41,42,139,148,149,156],copyto_vec_r:[123,127,135,137,140,142,144,146,152,155,161],copyto_vec_str:152,count:144,cout:[23,144,150,196],creat:20,crescent:[123,127,137,144,146],cubic:[30,31,32,36,37,39,40,42,105,120,146,150,155,157,170,187,196],cubic_quint:[58,146,147],cubic_spline_type_bc:[36,75,121,122,137,138,168],cubic_typ:[23,59,138,150,156,157],cubicsplin:[23,37,75,121,122,137,138,150,156,157,168,196],cubicspline_build:[137,138,146],cubicsplinebas:[28,29,36,38,40,43,93,121,122,124,128,138,139,141,145,156,168],cur:192,cur_d:192,curv:[27,28,107,112,115],curvatur:[49,92,107,115,121,122,153,154,155,156,168,175,192],curvature_d:[49,92,121,122,153,154,155,156,168,175,192],curvature_dd:[92,121,122,155,156,168],cut:[171,187],cx1:125,cx2:125,cx3:125,cxxabi:155,cxxflag:188,cy1:125,cy1a:125,cy2:125,cy2a:125,cy3:125,cy3a:125,damag:[164,196],data:[27,28,29,35,36,37,38,39,40,41,42,43,105,137,144,150,151,152,155,161,164,187,196],data_i:150,data_typ:[47,150,151,152],data_x:150,data_yp:150,datai:152,ddc:146,ddd:[23,28,29,35,36,37,38,39,40,41,42,43,44,46,49,136,139,143,148,149,150,151,153,154,155,156,158,196],dddd:[23,28,29,35,36,37,38,39,40,41,42,43,44,46,49,148,149,151,154,155,156,158],ddddd:[23,28,29,35,36,37,38,39,40,41,42,43,44,46,49,148,149,151,154,156,158],dddddp:[187,189],ddddp:[187,189],dddp:[187,189,191,192],dddt:150,ddh0:161,ddh1:161,ddl:[146,163],ddll:163,ddp:[187,189,191,192],ddr:[146,163],ddrr:163,ddt:150,debug:162,decid:125,defin:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,55,56,57,58,59,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,155,156,158,162,164,165,166,167,169,170,171,172,173,174,175,187],definit:[26,125,144,169,194],defiv:[28,29,36,37,38,40],degener:150,degli:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,196],degre:187,del1:144,del2:144,delet:[21,23,151,154,156,157,158,187,188,189,190,191,192],delta:[123,144],den:123,depentend:46,dequ:23,deriv2_3p_l:137,deriv2_3p_r:137,deriv2_4p_l:137,deriv2_4p_r:137,deriv2_5p_l:137,deriv2_5p_r:137,deriv:[10,13,14,16,19,27,28,29,30,32,34,35,36,38,39,40,41,44,45,46,49,107,115,121,125,129,131,133,150,156,158,164,168,187,196],deriv_left:163,deriv_right:163,destroi:[187,189,190,191,192],destructor:[28,29,36,38,40,41,43,44,46,48,49],deve:152,develop:[2,23,24,26,54,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,177,178,187,188,189,190,191,192,194,195],dh0:161,dh1:161,di_m1:123,di_m2:123,di_p1:123,diagnost:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163],differ:152,dim:[49,104,110,111,114,118,119,131,153,154,155,156],dimens:[27,30,31,32,33,34,45,48,49,104,110,111,114,118,119,154],dipartimento:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,196],dir:188,direct:[27,30,31,32,33,34,45,48,125,144,164,196],directori:[3,4,23,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163,179,180,181,182,183,184],disclaim:[164,196],disp:188,distanc:125,distribut:[27,104,110,111,114,118,119,164,196],dll:[163,164],dlll:[163,164],dmax:144,dmin:144,dnm:125,document:[22,23,24,25,121,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,168,186,187,188,189,190,191,192,193,195],done:[150,155,188],doppi:155,doubl:[6,7,10,11,13,14,16,19,23,24,156,167,196],doxygen_should_skip_thi:[23,123,124,125,127,128,129,131,133,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,155,156,163,164],dp0:[146,163,164],dpl:[146,163,164],dpr:[146,163,164],drat1:144,drat2:144,drop:[28,29,35,36,37,38,39,40,41,42,43,44],dropback:[28,29,35,36,37,38,39,40,41,42,43,44,156,158],drr:[163,164],drrr:[163,164],dsave:144,dsplines_do_not_use_generic_contain:188,dst:155,dt2:150,dt3:150,dump:[28,29,35,36,37,38,39,40,41,42,43,44,155,156,158],dump_tabl:[46,49,150,151,153,154],duplic:[150,155],dx00:[125,129,131],dx01:[125,129,131],dx10:[125,129,131],dx11:[125,129],dx2:137,dxf:125,dxi:125,dxnode:[27,30,31,32,33,130,132],dxx:[27,30,31,32,33,34,45,48,130,131,132,134,156,160,161,190],dxxnode:[32,33,132],dxxy:161,dxxyi:161,dxy:[27,30,31,32,33,34,45,48,125,130,131,132,134,156,160,161,190],dxyf:125,dxyi:[125,161],dxynod:[27,30,31,32,33,130,132],dy00:[125,129,131],dy01:[125,129,131],dy0:163,dy10:[125,129,131],dy11:[125,129,131],dy1:163,dya:150,dyb:150,dyf:125,dyi:[27,30,31,32,33,34,45,48,125,130,131,132,134,156,160,161,190],dyll:163,dyn:163,dynam:188,dynm1:163,dynod:[27,30,31,32,33,130,132],dyrr:163,dyynod:[32,33,132],dz00:125,dz01:125,dz02:125,dz03:125,dz0:125,dz10:125,dz11:125,dz12:125,dz13:125,dz1:125,dz20:125,dz21:125,dz22:125,dz23:125,dz2:125,dz30:125,dz31:125,dz32:125,dz33:125,dz3:125,dzxy11:125,dzxy12:125,dzxy13:125,dzxy21:125,dzxy22:125,dzxy23:125,dzxy31:125,dzxy32:125,dzxy33:125,each:[46,57,59],ebertolazzi:196,edit:196,either:164,element:[12,15,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48],els:[23,123,125,127,135,137,139,142,144,146,148,150,152,155,156,157,159,161],elseif:188,email:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,196],empti:[12,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48],enabl:162,end:[23,131,152,155,187,188,189,190,191,192],endif:[23,24,123,124,125,127,128,129,131,133,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,152,153,155,156,157,159,161,162,163,164],enough:125,enought:[123,127,137,144,146],enrico:[2,23,24,26,54,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,177,178,187,188,189,190,191,192,194,196],enumer:[55,56,57,58,59],eof:[23,24,124,126,130,132,134,136,138,141,143,145,147,149,151,154,158,160],epsi:[123,125],eqnarrai:187,equat:187,eras:23,error:[189,190],essenti:125,esser:152,esserci:152,estim:125,eval2:[46,150,151,152],eval2_d:[46,150,151,152],eval2_dd:[46,150,151,152],eval2_ddd:[46,150,151,152],eval5:[171,187],eval5_d:[171,187],eval5_dd:[171,187],eval5_ddd:[171,187],eval5_dddd:[171,187],eval5_ddddd:[171,187],eval:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,139,142,148,150,151,152,153,154,156,158,160,171,172,173,174,175,187,188,189,190,191,192],eval_curvatur:192,eval_curvature_d:192,eval_d:[28,29,35,36,37,38,39,40,41,42,43,44,46,49,150,151,152,153,154,156,158,171,172,174,175,187,189,191,192],eval_d_1:[27,30,31,32,33,34,45,48,156,160],eval_d_1_1:[27,30,31,32,33,34,45,48,156,160],eval_d_1_2:[27,30,31,32,33,34,45,48,156,160],eval_d_2:[27,30,31,32,33,34,45,48,156,160],eval_d_2_2:[27,30,31,32,33,34,45,48,156,160],eval_dd:[28,29,35,36,37,38,39,40,41,42,43,44,46,49,150,151,152,153,154,156,158,171,172,174,175,187,189,191,192],eval_ddd:[28,29,35,36,37,38,39,40,41,42,43,44,46,49,150,151,152,153,154,156,158,171,172,174,175,187,189,191,192],eval_dddd:[28,29,35,36,37,38,39,40,41,42,43,44,46,49,151,154,156,158,172,189],eval_ddddd:[28,29,35,36,37,38,39,40,41,42,43,44,46,49,151,154,156,158,172,189],eval_di:[173,190],eval_dx:[173,190],eval_dxi:[173,190],eval_dxx:[173,190],eval_dyi:[173,190],evalu:[10,11,13,14,16,19,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,150,151,187],evalut:35,even:[164,196],event:[164,196],except:156,exemplari:[164,196],exist:[23,123,127,135,137,140,142,144,146,152,155,159,161],expect:[150,152,153,157,161],express:[164,196],extend:[143,152],extend_const:152,extern:[23,24,28,29,35,36,37,38,39,40,41,42,156,188],extra:123,extrapol:[125,137],extrapolate2:125,extrapolate3:125,extrapolate_bc:[56,137,138,146],factor:[104,125],fail:157,fals:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,135,136,137,139,142,143,146,148,149,150,153,154,156,158,160,161],fanghung:[93,121,122,155,156,168],fare:123,field:[123,127,135,137,140,142,144,146,152,155,159,161],file:[1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,51,52,53,55,56,57,58,59,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,165,166,167,170,171,172,173,174,175,195],filepart:188,fill:[46,49,131],fill_n:[125,129],find:[23,28,29,35,36,37,38,39,40,41,42,43,150,152],finit:125,first:[10,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,150,152,164,196],first_deriv3p_c:[163,164],first_deriv3p_l:[163,164],first_deriv3p_r:[163,164],first_deriv4p_l:[163,164],first_deriv4p_r:[163,164],first_deriv5p_c:[163,164],first_deriv5p_l:[163,164],first_deriv5p_r:[163,164],first_derivative_build:[144,163,164],fist:[46,49],fit:[27,28,164,196],flag:[150,155],fmt:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,159,161],fname:[28,29,35,36,37,38,39,40,41,42,43,44,156,158],foleynielsen:[93,121,122,155,156,168],follow:[164,196],forc:188,form:[164,196],format:[123,127,135,137,140,142,144,146,150,152,153,155,159,161],formula:144,fortran:[27,30,31,32,33,34,45,48,104,110,111,114,118,119],fortran_storag:[27,30,31,32,33,34,45,48,156,159,160,161],found:[46,150,152,161],fpclassifi:164,fprintf:188,free:[132,135,139,142,146,148,150,153,161],freebsd:164,friend:156,fritsch:[120,196],from:[40,41,152],front:[139,150,152,153,156,158,161],fstream:[93,156],full:195,gc_boundari:152,gc_header:152,gc_integ:152,gc_map:152,gc_mat_real:[152,161],gc_vec_bool:152,gc_vec_integ:[152,161],gc_vec_long:161,gc_vec_real:[123,127,135,137,140,142,144,146,152,155,157,161],gc_vec_str:152,gc_vector:[152,161],gc_x:[123,127,135,137,140,142,144,146,155,161],gc_y:[123,127,135,137,140,142,144,146,155,161],gc_ydata:152,gc_yp:140,gc_ypdata:152,gc_z:161,gcc:[156,162],gener:[28,29,35,36,37,38,39,40,41,42,43,152],genericcontain:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,99,123,124,127,128,135,136,137,138,140,141,142,143,144,145,146,147,151,152,153,154,155,156,157,158,159,160,161,162],genericcontainernamespac:[123,127,135,137,140,142,144,146,152,153,155,156,157,159,161],get:[15,17,28,29,35,36,37,38,39,40,41,42,43,44],get_bool:152,get_elem:[47,151,152],get_head:[46,150,151],get_id:[153,155],get_if_exist:161,get_knot:[175,192],get_map:152,get_mat_r:[152,161],get_num_el:152,get_region:[81,121,122,144,168],get_str:[137,146,157,159],get_typ:[152,161],get_type_nam:[152,161],get_vec_r:152,get_vector:[152,161],getcolumn:152,getnod:192,getposit:[46,150,151],getrealroot:150,getsplin:[46,150,151,152],github:196,given:[164,187],good:[164,196],greather:[150,153],group:151,h_0:187,h_1:187,h_2:187,h_3:187,h_4:187,h_5:187,h_to_po:152,handl:[171,172,173,174,175,187,189,190,191,192],hdr:[46,150,151],head:23,header:[28,29,35,36,37,38,39,40,41,42,43,44,46,150,151,152,155,156,158],hermit:[38,40,155,170,187],hermite3:[139,140,153,156,161],hermite3_d:[139,140,153,156,161],hermite3_dd:[139,140,153,156,161],hermite3_ddd:[139,140,153,156],hermite5:[140,148,156,161],hermite5_d:[140,148,156,161],hermite5_dd:[140,148,156,161],hermite5_ddd:[140,148,156],hermite5_dddd:[140,148,156],hermite5_ddddd:[140,148,156],hermite_to_bezi:[171,187],hermite_typ:[59,141,150,156,157],hermitesplin:[37,78,121,122,140,141,150,168],hhll:163,hhrr:163,hidden:[189,190,191,192],hierarchi:195,hiroshi:[27,28,196],hl2:[146,163],hl3:146,hl4:163,hll:[137,146,163,164],hlll:[137,163,164],hllll:137,hlr:163,holder:[164,196],home:195,howev:[164,196],hr2:[146,163],hr3:146,hr4:163,hrpl:163,hrr:[137,146,163,164],hrrr:[137,163,164],hrrrr:137,hsum:144,http:196,hxx:[27,28,29,30,31,32,33,34,35,36,38,39,40,41,42,44,45,46,47,49,54,56,58,93,156,169],hypot:153,i00:[125,129,131,133,161],i01:[125,129,131,133,161],i0j0:125,i10:[125,129,131,133,161],i11:[125,129,131,133,161],iadd:125,ibegin:[123,127,137,144,146],id_d:[28,29,35,36,37,38,39,40,41,42,43,44,136,139,142,143,148,149,156,158],id_dd:[28,29,35,36,37,38,39,40,41,42,43,44,136,139,143,148,149,156,158],id_ddd:[28,29,35,36,37,38,39,40,41,42,43,44,136,139,143,148,149,156,158],id_dddd:[28,29,35,36,37,38,39,40,41,42,43,44,148,149,156,158],id_ddddd:[28,29,35,36,37,38,39,40,41,42,43,44,148,149,156,158],id_ev:[28,29,35,36,37,38,39,40,41,42,43,44,135,136,139,142,143,148,149,156,158],id_po:150,idx:[139,142,148,151,152],iend:[123,127,137,144,146],ierr:144,ifdef:[23,24,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163],ifndef:[23,24,123,124,125,127,128,129,131,133,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,155,156,162,163,164],ignor:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163],ignoredarg:171,imax:125,imin:125,implement:[57,59,139,148,195,196],impli:[164,196],inc:[49,153,154],inci:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,135,136,139,140,150,151,155,156,157,158,159,160,161],incident:[164,196],includ:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163,164,169,196],increment:[28,29,35,36,37,38,39,40,41,42,43,196],incx:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,135,136,139,140,155,156,157,158,159,160,161],incyi:[28,29,36,37,38,40],incyp:[28,29,36,37,38,40,139,156],indep:[46,150,151,152],independ:[46,150,151],indirect:[164,196],industrial:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,196],infinit:125,info:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,150,151,153,154,155,156,158,160,161],inform:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,48],ingegneria:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,196],inherit:[121,168,186,193],initi:[36,125,137],initlastinterv:[135,139,142,148,153,154,155,156],initlastinterval_i:[155,156,161],initlastinterval_x:[155,156,161],inlin:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,106,113,116,125,137,144,155,156,164],inmem:188,insert:[8,28,29,35,36,37,38,39,40,41,42,43,44,47,150,151,155],instal:196,instanc:[189,190,191,192],integ:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,93,103,104,105,110,111,114,118,119,120,121,122,123,124,125,127,128,129,130,131,132,133,135,136,137,138,139,140,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,160,161,163,164,168],interfac:[3,195,196],interior:[144,163],intern:[17,28,29,35,36,37,38,42,43],interpol:[6,27,40,120,131,144,163,195,196],interpret:164,interrupt:[164,196],intersect:[150,151,152],intersezion:150,interv:[28,29,35,36,37,38,39,40,41,42,43,44,123,150,187],intervallo:[123,127,137,144,146,150],introduct:195,iomanip:[62,66,68,70,72,76,79,85,98,125,129,131,133,135,139,142,148,161],ipos_c:[125,129,130,131,132,133,156,161],ipos_f:[156,161],irregularli:[27,196],is_bound:[28,29,35,36,37,38,39,40,41,42,43,44,156,158,172,189],is_clos:[28,29,35,36,37,38,39,40,41,42,43,44,49,154,156,158,172,189],is_extended_const:[28,29,35,36,37,38,39,40,41,42,43,156,172,189],is_po:152,is_x_bound:[27,30,31,32,33,34,45,48,156,160,173,190],is_x_clos:[27,30,31,32,33,34,45,48,156,160,173,190],is_y_bound:[27,30,31,32,33,34,45,48,156,160,173,190],is_y_clos:[27,30,31,32,33,34,45,48,156,160,173,190],ismac:188,ismonoton:[46,151],ispc:188,ispl:152,isunix:188,iszero:[144,150,155],item:152,iter:[23,152],jadd:125,jmax:125,jmin:125,journal:[28,120,196],june:120,kei:[46,150],kind:[28,29,35,36,37,38,39,40,41,42,43,172,174,189,191],knot:[175,192],know:44,known:[28,29,36,37,38,39,40,41,42,43],l2_first_deriv:[171,187],l2_second_deriv:[171,187],l2_third_deriv:[171,187],largearraydim:188,last:[28,29,35,36,37,38,39,40,41,42,43,44],lastinterv:155,ld_pnt:[104,110,111,114,118,119,155,156],ldflag:188,ldy:[49,153,154],ldz:[27,30,31,32,33,34,45,48,156,159,160,161],lead:[27,30,31,32,33,34,45,48,104,110,111,114,118,119],leggo:152,length:[187,188],liabil:[164,196],liabl:[164,196],lib:[177,187,188,189,190,191,192,194],lib_obj:188,lib_src:188,libgcc:188,libsourc:[2,23,24,26,54,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,177,178,187,188,189,190,191,192,194],libstdc:188,libunwind:155,licens:195,limit:[87,89,90,92,150,152,153,155,164,196],linear:[39,137,143,144,146,155,157,163,170,187],linear_typ:[23,59,143,150,156,157],linearsplin:[23,43,80,121,122,142,143,150,156,157,168],link:[188,196],linklib:188,linux:196,list:[3,4,26,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,169,179,180,181,182,183,184,194,196],lmat:188,lmatlabdataarrai:188,lmex:188,lmx:188,load:[23,123,125,127,129,130,131,132,133,135,137,139,140,142,144,146,148,161],local:[27,28,120],loop:[144,163],loss:[164,196],lower_bound:[150,156],lst_cc:188,m_b:[153,154,155,156],m_baseint:[150,151],m_basepoint:[150,151,153,154],m_basesplin:[150,151],m_basevalu:[135,136,139,142,143,148,149,150,151,153,154,156],m_bc0:[137,138],m_bcn:[137,138],m_bs_x:[155,156],m_bs_y:[155,156],m_curve_can_extend:[139,142,148,153,154,155,156],m_curve_extended_const:[139,142,143,148,156],m_curve_is_clos:[153,154,155,156],m_dim:[153,154],m_dx:[125,129,130,131,132,161],m_dxx:[131,132,161],m_dxxy:[131,132,161],m_dxxyi:[131,132,161],m_dxy:[125,129,130,131,132,161],m_dxyi:[131,132,161],m_dy:[125,129,130,131,132,161],m_dyi:[131,132,161],m_external_alloc:[135,136,139,142,143,148,149,156],m_header_to_posit:[150,151,152],m_is_monoton:[150,151],m_mem:[156,161],m_mem_bicub:[125,129,130],m_name:[123,127,135,137,140,142,144,146,150,151,152,153,154,155,156,157,158,159,160,161],m_npt:[123,127,135,137,139,142,144,146,148,150,151,152,153,154,155,156],m_npts_reserv:[135,139,142,148,155,156],m_nspl:[150,151,152],m_nx:[125,129,130,131,133,134,155,156,161],m_ny:[125,129,130,131,133,134,155,156,161],m_pspline2d:[159,160],m_pspline:[157,158],m_q_sub_typ:[146,147],m_spline:[150,151,152],m_x:[123,125,127,129,130,131,133,134,135,137,139,142,144,146,148,150,151,153,154,155,156,161],m_x_can_extend:[155,156],m_x_close:[155,156],m_y:[123,125,127,129,130,131,133,134,135,137,139,142,144,146,148,150,151,153,154,155,156,161],m_y_can_extend:[155,156],m_y_clos:[155,156],m_ymax:[150,151],m_ymin:[150,151],m_yp:[123,127,137,139,144,146,148,149,150,151,153,154,156],m_ypp:[146,148,149,150,151],m_z:[125,129,130,131,133,134,156,161],m_z_max:[156,161],m_z_min:[156,161],mac:196,make:196,make_bound:[28,29,35,36,37,38,39,40,41,42,43,44,152,156,158,172,189],make_buond:[49,154],make_clos:[28,29,35,36,37,38,39,40,41,42,43,44,49,152,154,156,158,172,189],make_extended_const:[28,29,35,36,37,38,39,40,41,42,43,152,156,172,189],make_extended_not_const:[28,29,35,36,37,38,39,40,41,42,43,152,156,172,189],make_open:[28,29,35,36,37,38,39,40,41,42,43,44,49,152,154,156,158,172,189],make_unbound:[28,29,35,36,37,38,39,40,41,42,43,44,49,152,154,156,158,172,189],make_x_bound:[27,30,31,32,33,34,45,48,156,160,173,190],make_x_clos:[27,30,31,32,33,34,45,48,156,160,173,190],make_x_open:[27,30,31,32,33,34,45,48,156,160,173,190],make_x_unbound:[27,30,31,32,33,34,45,48,156,160,173,190],make_y_bound:[27,30,31,32,33,34,45,48,156,160,173,190],make_y_clos:[27,30,31,32,33,34,45,48,156,160,173,190],make_y_open:[27,30,31,32,33,34,45,48,156,160,173,190],make_y_unbound:[27,30,31,32,33,34,45,48,156,160,173,190],makefil:196,makesplin:[125,126,129,130,131,132,134,156,161],malloc:[123,127,130,132,136,137,143,146,149,150,151,152,154,155,156,161],manag:[36,38,43,44,46,48,49],map:[23,46,152],map_splin:23,map_typ:[152,156],maplegenvar1:137,maplegenvar2:137,maplegenvar3:137,mat_real_typ:[152,153,161],match:196,materi:[164,196],math:187,mathbf:187,mathemat:[27,196],matlab:[187,188,189,190,191,192,195],matlabroot:188,matric:152,matrix:[27,30,31,32,33,34,45,48,104,110,111,114,118,119,187],max:155,max_ab:[81,121,122,144,168],max_el:[150,156,161],maximum:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49],mechatronix:[2,23,24,26,54,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,177,178,187,188,189,190,191,192,194],mem:[123,127,131,132,137,146,150,152,155,161],memori:[28,29,35,36,37,38,39,40,41,42,43,44,150],merchant:[164,196],met:[164,196],method:[27,120,141,155,156,187,189,190,191,192,196],mex:[188,195,196],mex_:188,mex_cmd:188,mexload:188,mfilenam:188,min:155,min_ab:[81,121,122,144,168],min_el:[150,156,161],minimum:123,minumum:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49],mislock:188,miss:[123,127,135,137,140,142,144,146,152,155,159,161],mix:[27,30,31,32,33,34,48],mltbx:196,modif:[144,164,196],modifi:[139,142,148],monoton:[40,41,105,120,144,150,151,155,196],monotono:[123,127,137,144,146],mroot:188,msg1:[152,161],msg:[123,127,135,137,140,142,144,146,150,152,155,159,161],munlock:188,must:[156,158,161,164,189,190,196],must_be_empti:[150,153],mutabl:[151,154,156],n_elem:[47,151,152],name:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,124,126,128,130,132,134,136,138,141,143,145,147,149,150,151,153,154,156,158,160,161,173,188,190],name_list:[46,150,151],namespac:[23,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,163,164,169,196],namspac:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148],nargin:[189,190,191],nargout:[187,189,190],natur:137,natural_bc:[56,137,138],ncol:161,need:144,neglig:[164,196],nest:[121,168],new_p0:187,new_p1:187,new_spline1d:[94,121,122,157,168],new_t0:187,new_t1:187,nfail:150,nient:123,nin:155,ninterv:[28,29,35,36,37,38,39,40,41,42,43,44,155,156,158],node:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,104,110,111,114,118,119,135,136,139,142,143,148,149,150,156,158],non:[23,144,150,151,155],not_a_knot:[56,137,138],noth:[135,136,139,141,142,148],notic:[164,196],notyp:23,npr:150,npt:[28,29,35,36,37,38,39,40,41,42,43,44,46,49,103,104,105,110,111,114,118,119,120,123,124,127,128,136,137,138,143,144,145,146,149,150,151,152,153,154,155,156,158,163,164],nrow:[152,161],nseg:[135,139,142,148],nspl:[46,150,151],nspline:150,nullptr:[23,46,130,132,135,139,142,148,149,150,151,152,153,155,156,157,158,160,161,170],num:123,num_point:[46,49,150,151,153,154],number:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,57,59,104,110,111,114,118,119,144,152],numcol:[152,161],numer:[120,196],numeric_limit:155,numpoint:[28,29,35,36,37,38,39,40,41,42,43,44,46,49,151,154,156,158],numpointi:[27,30,31,32,33,34,45,48,156,160],numpointx:[27,30,31,32,33,34,45,48,156,160],numrow:[152,161],numsplin:[46,151],nxmin:155,obj:188,object:[9,17,20,21,187],objecthandl:[189,190,191,192],offici:164,ofstream:156,old:188,old_dir:188,onc:[24,156,162,164],onli:144,onto:151,oper:[23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,130,132,133,134,135,136,139,142,143,148,149,151,153,154,156,158,160,161],opzional:152,ora:144,order:[28,29,35,36,37,38,39,40,41,42,43,44,135,136,139,142,143,148,149,155,156,158],origin:[28,29,35,36,37,38,39,40,41,42,43,44],ostream_typ:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,93,117,121,122,125,126,129,130,131,132,133,134,135,136,139,142,143,148,149,150,151,153,154,155,156,158,160,168],ostringstream:156,osx:196,other:[164,196],otherwis:[164,196],out:[104,110,111,114,118,119,150,164,196],output:188,overrid:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,124,126,128,130,132,134,136,138,141,143,145,147,149,156],owner:[164,196],p_dy:[28,29,36,37,38,40,139,156],p_lastinterv:153,p_spl:152,p_x:[28,29,35,36,37,38,39,40,41,42,135,136,139,142,143,148,149,156],p_y:[28,29,35,36,37,38,39,40,41,42,135,136,139,142,143,148,149,156],p_yp:[41,42,148,149],p_ypp:[41,42,148,149],pag:155,pair:[47,151,156],parabol:137,parabolic_runout_bc:[56,137,138],paramet:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,104,110,111,114,118,119],parametr:187,parent:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,178,179,180,181,182,183,184],partial:125,particular:[164,196],pass:[7,155],patch:[125,129,131,133],path1:188,path2:188,path:[2,54,177,178],pchip:[40,146,155,157,170],pchip_build:[81,121,122,144,145,146,168],pchip_build_new:[81,121,122,144,168],pchip_quint:[58,146,147],pchip_typ:[23,59,145,150,156,157],pchipsplin:[23,37,82,121,122,129,144,145,150,156,157,168],pedant:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,163],per:144,perch:155,permit:[164,196],pezxi:125,picewis:35,piecewis:[28,29,35,36,37,38,39,40,41,42,43,44,120,196],pin:[2,23,24,26,54,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,177,178,187,188,189,190,191,192,194],planar:[107,112,115],pnt:[104,110,111,114,118,119,155,156,189],point:[6,7,8,12,15,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,104,110,111,114,118,119,123,125,127,137,144,146,150,152,153,155,163,167,187,196],pointer:[17,46],polici:164,polinomi:[28,29,35,36,37,38,39,40,41,42,43,44],polygon:187,polynomi:[40,125,187],polynomialroot:[87,150],pop:156,pos1:150,pos:[150,152],posit:[47,150,151,153],posizion:152,possibl:[164,196],pow:155,power:104,pragma:[23,24,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163,164],prealloc:152,present:187,preserv:[144,155],previous:[8,40,41],primari:125,primary_estim:125,print:[18,23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,125,129,131,133,135,139,142,148,155],privat:[138,151,189,190,191,192],procedur:[27,28],procur:[164,196],profit:[164,196],program:[3,4,26,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,169,179,180,181,182,183,184,194],project:164,properti:[187,189,190,191,192],protect:[130,132,149,151,154,156,158,160],provid:[164,196],punti:[123,127,155],puo:152,purpos:[164,196],push:[6,156,162],push_back:[150,152,196],pushback:[23,28,29,35,36,37,38,39,40,41,42,43,44,155,156,158,196],pyp:150,pypp:150,q_sub_typ:146,quintic:[33,41,42,45,155,157,170,187],quintic_build:146,quintic_spline_typ:[41,84,121,122,146,147,168],quintic_typ:[23,59,149,150,156,157],quinticsplin:[23,42,84,121,122,131,146,147,150,156,157,168],quinticspline_ypp_build:146,quinticspline_yppp_continu:146,quinticsplinebas:[41,43,86,121,122,147,148,149,168],radic:150,rake:196,rakefil:196,rang:[28,29,35,36,37,38,39,40,41,42,43,44,150,155],read:[152,161],real_typ:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,93,103,104,105,106,107,108,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,127,128,130,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,160,161,163,164,168],realloc:[125,129,131,135,139,142,148,150,153,161],rec:139,redistribut:[164,196],refer:[27,28,195],region_:[55,144],region_a:[55,144],region_abcdem:[81,108,121,122,144,168],region_b:[55,144],region_c:[55,144],region_d:[55,144],region_m:[55,144],reinterpret_cast:[150,152],relationship:[121,168,186,193],repres:164,reproduc:[164,196],res:[144,150,155],reserv:[28,29,35,36,37,38,39,40,41,42,43,44,124,128,135,136,138,139,141,142,143,145,147,148,149,150,151,152,155,156,158,164,196],reserve_extern:[28,29,35,36,37,38,39,40,41,42,135,136,139,142,143,148,149,150,156],resiz:[150,152,153,161],respect:[27,30,31,32,33,34,48],retain:[164,196],riallocazion:155,ricerca:[2,23,24,26,54,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,177,178,187,188,189,190,191,192,194],right:[164,196],risolver:[137,146],row:[27,30,31,32,33,34,45,48,152,161],run:196,run_win:196,runtime_error:[155,156],s_x:[27,30,31,32,33,34,48],s_y:[27,30,31,32,33,34,48],salvo:155,same:187,sampl:[28,29,35,36,37,38,39,40,41,42,43],saved_npt:155,scientif:120,search:[28,29,35,36,37,38,39,40,41,42,43,47,49,135,139,142,148,150,151,153,154,155,156],search_i:[133,155,156,161],search_x:[133,155,156,161],searchinterv:[153,155],second:[16,23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,107,133,150,152,187,196],second_deriv3p_c:[146,163,164],second_deriv3p_l:[146,163,164],second_deriv3p_r:[146,163,164],second_derivative_build:[163,164],seg_bc0:137,seg_bcn:137,segment:[135,139,142,148,187],select:9,self:[172,173,174,175,187,189,190,191,192],separ:187,servic:[164,196],set:[12,36,46,49,125,144,155,170,195,196],set_map:152,set_mat_r:153,set_vec_r:[152,154],setaccess:[189,190,191,192],setbc:146,setfinalbc:[36,138],setinitialbc:[36,138],setknot:[49,153,154],setknotscentripet:[49,153,154],setknotschordlength:[49,153,154],setknotsfolei:[49,154],setorigin:[28,29,35,36,37,38,39,40,41,42,43,44,155,156,158],setquintictyp:[41,147],setrang:[28,29,35,36,37,38,39,40,41,42,43,44,139,149,155,156,158],setup:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,123,124,127,128,135,136,137,138,140,141,142,143,144,145,146,147,151,152,153,154,155,156,157,158,159,160,161,175,192],shall:[164,196],shape:[144,155],should:164,siam:[120,196],sigma:144,sign:165,signtest:[81,121,122,144,168],simpl:196,sistema:[137,146],size:[27,30,31,32,33,34,45,48,139,150,151,152,153,156,158,161],size_t:[123,125,127,129,130,131,132,133,135,137,139,142,144,146,148,149,150,151,152,153,154,155,156,161,163],skip:155,sll:[137,146,163],slll:137,sllll:137,slope:[123,127,139,142,148],smooth:[27,28,196],softwar:[27,164,196],soli:127,solo:[123,152],solut:188,some:[28,29,35,36,37,38,39,40,41,42,43,44],sourc:[3,164,196],sp1:131,special:[127,144,163,164,196],spl:[46,150,151,152,153],spl_type:157,spline1d:[95,121,122,156,157,158,168,178,186,193,194],spline1dmexwrapp:[188,189],spline2d:[97,121,122,156,159,160,168,178,186,193,194],spline2dmexwrapp:[188,190],spline:[2,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,44,45,46,47,48,49,51,54,55,56,57,58,59,121,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,160,161,162,163,164,168,169,177,178,187,188,189,190,191,192,194],spline_build2:[4,22,23,24,25],spline_build:[4,22,23,24,25],spline_delet:[4,22,23,24,25],spline_ev:[4,22,23,24,25],spline_eval_d:[4,22,23,24,25],spline_eval_dd:[4,22,23,24,25],spline_eval_ddd:[4,22,23,24,25],spline_eval_dddd:[4,22,23,24,25],spline_eval_ddddd:[4,22,23,24,25],spline_get_type_nam:[4,22,23,24,25],spline_init:[4,22,23,24,25],spline_mem_ptr:[4,22,23,24,25],spline_new:[4,22,23,24,25],spline_print:[4,22,23,24,25],spline_push:[4,22,23,24,25],spline_select:[4,22,23,24,25],spline_set_typ:[59,150,151,156,157],spline_stor:23,spline_sub_typ:146,spline_typ:[152,157,159],spline_type_1d:[23,92,121,122,155,156,168],spline_type_vec:152,spline_vec_typ:[59,150,154,156,157],splineakima2d:[27,54,93,156,169],splineakima:[28,54,93,156,169],splinebessel:[29,54,93,156,169],splinebicub:[30,31,54,93,156,169],splinebilinear:[34,54,93,156,169],splinebiquint:[32,33,54,93,156,169],splinecinterfac:[23,24],splineconst:[35,54,93,156,169],splinecub:[36,54,56,93,156,169],splinecubicbas:[54,93,169],splinehermit:[38,54,93,156,169],splinelinbear:143,splinelinear:[39,54,93,156,169],splinepchip:[40,54,55,93,101,103,106,108,113,116,120,156,169],splinequint:[41,54,58,93,101,156,169],splinequinticbas:[42,54,93,156,169],splines1d:[44,54,93,109,156,169],splines2d:[45,54,93,156,169],splines_c_interface_h:[4,22,24,25],splines_config_hh:[99,121,162,168],splines_hh:[93,121,156,168],splines_os_osx:155,splines_utils_hh:[101,121,164,168],splinesbivari:[54,93,169],splinescinterfac:[1,2,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,26],splinesconfig:[52,54,93,156,169],splineset:[54,93,101,121,122,152,154,156,168,169,178,186,193,194],splinesetgc:[54,93,169],splinesetmexwrapp:[188,191],splinesload:[23,156,196],splinesurf:[31,33,34,93,121,122,130,132,134,155,156,160,161,168],splinesutil:[53,54,81,83,87,92,93,99,144,146,150,155,169],splinetype1d:[44,46,93,109,121,122,150,151,152,155,156,157,158,168],splinetype2d:[45,93,121,122,156,159,160,168],splinevec:[54,93,121,122,156,168,169,178,186,193,194],splinevecmexwrapp:[188,192],sqrt:[150,153,155],sqrtd1:187,sqrtd2:187,sqrtd3:187,src:[23,24,26,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,188],src_mex:188,srr:[137,146,163],srrr:137,srrrr:137,standard:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,196],statement:125,static_cast:[23,150,155,159],statist:120,std:[23,44,46,47,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,151,152,153,155,156,157,158,160,161,163,164,196],stencil:125,storag:[27,30,31,32,33,34,45,48,104,110,111,114,118,119],store:[27,28,29,30,31,32,33,34,35,36,37,38,42,43,45,48,187],strcmp:23,stream:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,150,151,153,154,156,158,160],strettament:[123,127,137,144,146],strict:[150,151,155,164,196],strictli:[105,144,150],string:[23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,109,123,124,126,127,128,130,132,134,135,136,137,138,140,141,142,143,144,145,146,147,149,150,151,152,153,154,155,156,157,158,159,160,161],string_to_splinetyp:[152,155,156],string_typ:159,studi:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,196],stype:[46,150,151,152],sub:146,subclass:[31,33,37,42,43,48],subdirectori:194,submodul:[2,23,24,26,54,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,177,178,187,188,189,190,191,192,194],substitut:[164,196],subtyp:189,support:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49],surfac:[27,30,31,32,33,34,45,48,196],sxx:125,sxxy:125,sxxyi:125,sxy:125,sxyi:125,sxyz:125,sxz:125,sya:125,syi:125,system:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163],syya:125,t102:137,t103:163,t105:[137,163],t10:[137,140,163],t110:137,t112:137,t118:137,t119:137,t11:140,t12:[137,155,163],t133:137,t134:137,t13:[137,140,153,155,163],t141:137,t142:137,t148:137,t149:137,t14:[140,163],t156:137,t157:137,t159:137,t15:155,t16:[137,140,155,163],t17:[137,140,153,155,163],t19:[137,140,163],t20:163,t21:[155,163],t22:[140,155,163],t23:[137,140],t24:163,t25:[137,140,163],t26:[140,153,155,163],t27:[153,155],t28:[153,155,163],t29:137,t30:[137,140,155],t31:140,t32:163,t33:163,t35:137,t36:140,t38:163,t40:155,t41:[137,163],t43:163,t47:163,t48:163,t49:[137,163],t51:163,t52:163,t53:163,t55:[137,163],t56:137,t58:163,t60:137,t64:155,t65:155,t67:155,t70:163,t73:163,t75:137,t76:137,t80:163,t83:163,t91:137,temporari:161,test:195,than:[150,153],theori:[164,196],thi:[3,47,105,123,127,129,130,131,132,133,135,137,139,140,142,144,146,148,150,151,152,153,154,155,156,158,160,161,162,164,196],third:[14,28,29,35,36,37,38,39,40,41,42,43,44,46,49,187,196],this_thread:[153,155],those:164,three:144,through:[144,163],tipo:152,tmax:[174,175,191,192],tmin:[174,175,191,192],tmp1:155,tmp2:155,tmp3:155,tmp:[150,161,163],tolow:155,toolbox:[178,187,188,189,190,191,192,194,195],top:[137,163],tort:[164,196],total:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,48],transact:[27,196],transform:155,transpos:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,136,139,142,143,148,149,156,158,159,160,161],trento:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,196],trovata:23,trovato:150,type:[15,20,23,24,44,45,47,49,57,59,121,124,128,136,138,141,143,145,146,149,150,151,152,154,155,156,157,158,159,161,165,167,168,186,193],type_nam:[23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,125,126,129,130,131,132,133,134,155,156,158,160,161],typedef:[23,47,138,144,147,151,156,169],typenam:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48],u_d:161,u_dd:161,uncom:162,underli:[189,190,191,192],uniform:[92,121,122,155,156,168],unitn:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,196],univers:[93,121,122,155,156,168],universita:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164],unknow:[137,146],unknown:[155,157,159],unless:144,unsign:[28,29,35,36,37,38,39,40,41,42,43,44,46,49,124,128,136,138,141,143,145,149,151,152,153,154,156,158,161],unw_local_onli:155,usag:195,usata:144,use:[144,163,164,196],used:[28,29,35,36,37,38,39,40,41,42,43,125,140,150],user:[2,23,24,26,54,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,177,178,187,188,189,190,191,192,194],uses:152,usin:187,using:[23,28,29,35,36,37,38,39,40,41,42,43,46,104,110,111,114,118,119,123,124,125,127,128,129,130,131,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,155,156,157,159,161,163,164,196],util:[99,123,127,130,132,136,137,143,144,146,149,150,151,152,153,154,155,156,161,162,188],utils_assert0:[153,155,157],utils_assert:[123,127,135,137,140,142,144,146,150,152,153,155,159,161],utils_error:[137,140,146,150,152,157,159,161],utils_warn:[137,146],v_d:161,v_dd:161,val:[46,49,150,151,152,153,154],valu:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,55,56,57,58,59,125,137,146,150,151,187],varargin:[171,172,173,174,187,189,190,191],varargout:[187,189,190],variabl:[151,169],vario:196,variou:[28,29,35,36,37,38,39,40,41,42,43,195],vec:[46,151,152,155,170],vec_int_typ:152,vec_real_typ:[46,49,123,127,135,137,140,142,144,146,151,152,153,154,155,156,157,161],vec_string_typ:[46,151,152,156],vector:[23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,104,110,111,114,118,119,139,150,151,152,153,154,156,158,159,160,161,187,196],vector_typ:[152,156,161],vectori:[150,151],vettor:152,via:144,view:164,virtual:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,46,48,49,124,128,136,138,141,143,145,147,149,151,154,156],vol:[27,28,120,196],volatil:125,volatility_factor:125,wai:[164,196],wall:188,want:162,warranti:[164,196],weak:151,weight:125,wglobal:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,163],when:[28,29,36,37,38,39,40,41,42,43],whether:[125,164,196],which:[188,195,196],whose:[104,110,111,114,118,119,187],window:[155,196],without:[164,196],workaround:188,wpad:162,wpoison:[23,123,125,127,129,131,133,135,137,139,140,142,144,146,148,150,152,153,155,156,157,159,161,162,163],wrapper:[189,190,191,192],write:[27,30,31,32,33,34,48],writetostream:[23,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,125,126,129,130,131,132,133,134,135,136,139,142,143,148,149,156,158,160],x_1:[153,155],x_2:[153,155],x_3:[153,155],x_4:155,x_loc:125,xbegin:[28,29,35,36,37,38,39,40,41,42,43,44,156,158,172,189],xdata:[123,127,135,137,140,142,144,146,152,155,157,161],xend:[28,29,35,36,37,38,39,40,41,42,43,44,156,158,172,189],xmax:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,139,149,150,151,153,154,155,156,158,160,172,189],xmin:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,139,149,150,151,153,154,155,156,158,160,172,189],xnode:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,151,154,156,158,160],xsave:155,xyswp:156,y_1:[153,155],y_2:[153,155],y_3:[153,155],y_4:155,y_loc:125,ybegin:[28,29,35,36,37,38,39,40,41,42,43,44,156,158,172,189],ydata:[123,127,135,137,140,142,144,146,152,155,157,161],yend:[28,29,35,36,37,38,39,40,41,42,43,44,156,158,172,189],yes:105,ymax:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,151,155,156,158,160,172,189],ymin:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,151,155,156,158,160,172,189],ynode:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,150,151,154,156,158,160],you:162,your:196,ypdata:[140,152],ypnode:[28,29,36,37,38,40,41,42,129,131,149,156],ypp:[137,138,146,148,150,163,164],yppnode:[41,42,131,149],ysave:155,z00:[125,129,131,133],z01:[125,129,131,133],z02:125,z03:125,z10:[125,129,131,133],z11:[125,129,131,133],z12:125,z13:125,z20:125,z21:125,z22:125,z23:125,z30:125,z31:125,z32:125,z33:125,z_loc:125,zdata:161,zero:125,zeta:[46,150,151,152],zmax:[27,30,31,32,33,34,45,48,156,160],zmin:[27,30,31,32,33,34,45,48,156,160],znode:[27,30,31,32,33,34,45,48,156,160],zxy:125},titles:["Class Hierarchy","Define SPLINES_C_INTERFACE_H","Directory src","File SplinesCinterface.cc","File SplinesCinterface.h","File Hierarchy","Function SPLINE_push","Function SPLINE_build2","Function SPLINE_build","Function SPLINE_select","Function SPLINE_eval_D","Function SPLINE_eval","Function SPLINE_init","Function SPLINE_eval_DDDD","Function SPLINE_eval_DDD","Function SPLINE_get_type_name","Function SPLINE_eval_DD","Function SPLINE_mem_ptr","Function SPLINE_print","Function SPLINE_eval_DDDDD","Function SPLINE_new","Function SPLINE_delete","C API","Program Listing for File SplinesCinterface.cc","Program Listing for File SplinesCinterface.h","Full API","Full API","Class Akima2Dspline","Class AkimaSpline","Class BesselSpline","Class BiCubicSpline","Class BiCubicSplineBase","Class BiQuinticSpline","Class BiQuinticSplineBase","Class BilinearSpline","Class ConstantSpline","Class CubicSpline","Class CubicSplineBase","Class HermiteSpline","Class LinearSpline","Class PchipSpline","Class QuinticSpline","Class QuinticSplineBase","Class Spline","Class Spline1D","Class Spline2D","Class SplineSet","Class SplineSet::BinarySearch","Class SplineSurf","Class SplineVec","Class Hierarchy","Define SPLINES_HH","Define SPLINES_CONFIG_HH","Define SPLINES_UTILS_HH","Directory src","Enum REGION_ABCDEM","Enum CUBIC_SPLINE_TYPE_BC","Enum SplineType2D","Enum QUINTIC_SPLINE_TYPE","Enum SplineType1D","File SplineAkima.cc","File SplineAkima.hxx","File SplineAkima2D.cc","File SplineAkima2D.hxx","File SplineBessel.cc","File SplineBessel.hxx","File SplineBiCubic.cc","File SplineBiCubic.hxx","File SplineBiQuintic.cc","File SplineBiQuintic.hxx","File SplineBilinear.cc","File SplineBilinear.hxx","File SplineConstant.cc","File SplineConstant.hxx","File SplineCubic.cc","File SplineCubic.hxx","File SplineCubicBase.cc","File SplineHermite.cc","File SplineHermite.hxx","File SplineLinear.cc","File SplineLinear.hxx","File SplinePchip.cc","File SplinePchip.hxx","File SplineQuintic.cc","File SplineQuintic.hxx","File SplineQuinticBase.cc","File SplineQuinticBase.hxx","File SplineSet.cc","File SplineSet.hxx","File SplineSetGC.cc","File SplineVec.cc","File SplineVec.hxx","File Splines.cc","File Splines.hh","File Splines1D.cc","File Splines1D.hxx","File Splines2D.cc","File Splines2D.hxx","File SplinesBivariate.cc","File SplinesConfig.hh","File SplinesUtils.cc","File SplinesUtils.hh","File Hierarchy","Function Splines::Pchip_build_new","Function Splines::centripetal","Function Splines::checkCubicSplineMonotonicity","Function Splines::signTest","Function Splines::curvature_DD","Function Splines::get_region","Function Splines::new_Spline1D","Function Splines::uniform","Function Splines::universal","Function Splines::curvature","Function Splines::min_abs","Function Splines::FoleyNielsen","Function Splines::curvature_D","Function Splines::max_abs","Function Splines::backtrace","Function Splines::FangHung","Function Splines::chordal","Function Splines::Pchip_build","C++ API","Namespace Splines","Program Listing for File SplineAkima.cc","Program Listing for File SplineAkima.hxx","Program Listing for File SplineAkima2D.cc","Program Listing for File SplineAkima2D.hxx","Program Listing for File SplineBessel.cc","Program Listing for File SplineBessel.hxx","Program Listing for File SplineBiCubic.cc","Program Listing for File SplineBiCubic.hxx","Program Listing for File SplineBiQuintic.cc","Program Listing for File SplineBiQuintic.hxx","Program Listing for File SplineBilinear.cc","Program Listing for File SplineBilinear.hxx","Program Listing for File SplineConstant.cc","Program Listing for File SplineConstant.hxx","Program Listing for File SplineCubic.cc","Program Listing for File SplineCubic.hxx","Program Listing for File SplineCubicBase.cc","Program Listing for File SplineHermite.cc","Program Listing for File SplineHermite.hxx","Program Listing for File SplineLinear.cc","Program Listing for File SplineLinear.hxx","Program Listing for File SplinePchip.cc","Program Listing for File SplinePchip.hxx","Program Listing for File SplineQuintic.cc","Program Listing for File SplineQuintic.hxx","Program Listing for File SplineQuinticBase.cc","Program Listing for File SplineQuinticBase.hxx","Program Listing for File SplineSet.cc","Program Listing for File SplineSet.hxx","Program Listing for File SplineSetGC.cc","Program Listing for File SplineVec.cc","Program Listing for File SplineVec.hxx","Program Listing for File Splines.cc","Program Listing for File Splines.hh","Program Listing for File Splines1D.cc","Program Listing for File Splines1D.hxx","Program Listing for File Splines2D.cc","Program Listing for File Splines2D.hxx","Program Listing for File SplinesBivariate.cc","Program Listing for File SplinesConfig.hh","Program Listing for File SplinesUtils.cc","Program Listing for File SplinesUtils.hh","Typedef Splines::integer","Typedef Splines::ostream_type","Typedef Splines::real_type","Full API","Full API","Variable Splines::spline_type_1D","Class BaseHermite","Class Spline1D","Class Spline2D","Class SplineSet","Class SplineVec","Class Hierarchy","Directory toolbox","Directory lib","File BaseHermite.m","File CompileSplinesLib.m","File Spline1D.m","File Spline2D.m","File SplineSet.m","File SplineVec.m","File Hierarchy","MATLAB API","Program Listing for File BaseHermite.m","Program Listing for File CompileSplinesLib.m","Program Listing for File Spline1D.m","Program Listing for File Spline2D.m","Program Listing for File SplineSet.m","Program Listing for File SplineVec.m","Full API","Full API","Splines","Splines "],titleterms:{"class":[0,22,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,61,63,65,67,69,71,73,75,78,80,82,84,86,88,91,93,95,97,121,122,168,171,172,173,174,175,176,179,181,182,183,184,186,193],"enum":[55,56,57,58,59,75,81,84,93,121,122,168],"function":[4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,81,92,93,94,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,168],akima2dsplin:27,akimasplin:28,api:[22,25,26,121,168,169,186,193,194],backtrac:117,base:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,171,172,173,174,175],basehermit:[171,179,187],besselsplin:29,bicubicsplin:30,bicubicsplinebas:31,bilinearsplin:34,binarysearch:47,biquinticsplin:32,biquinticsplinebas:33,build:196,centripet:104,checkcubicsplinemonoton:105,chordal:119,compil:196,compilesplineslib:[180,188],constantsplin:35,content:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,122,179,180,181,182,183,184,195],cubic_spline_type_bc:56,cubicsplin:36,cubicsplinebas:37,curvatur:112,curvature_d:115,curvature_dd:107,defin:[1,4,22,25,51,52,53,93,99,101,121,168],definit:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,179,180,181,182,183,184],deriv:[31,33,37,42,43,48],descript:3,detail:3,develop:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,179,180,181,182,183,184,196],directori:[2,26,54,169,177,178,194],document:[1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,51,52,53,55,56,57,58,59,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,165,166,167,170,171,172,173,174,175,196],enrico:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,179,180,181,182,183,184],exchang:196,fanghung:118,file:[2,3,4,5,22,23,24,26,54,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,121,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,194,196],foleynielsen:114,full:[22,25,26,121,168,169,186,193,194],get_region:108,hermitesplin:38,hierarchi:[0,5,22,50,102,121,176,185,186],home:196,hxx:[61,63,65,67,69,71,73,75,78,80,82,84,86,88,91,95,97,124,126,128,130,132,134,136,138,141,143,145,147,149,151,154,158,160],includ:[60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],inherit:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,48,171,172,173,174,175],integ:165,introduct:196,lib:[178,179,180,181,182,183,184],libsourc:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,179,180,181,182,183,184],licens:196,linearsplin:39,list:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,187,188,189,190,191,192],matlab:[186,196],max_ab:116,mechatronix:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,179,180,181,182,183,184],min_ab:113,namespac:[60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,101,121,122,168],nest:[46,47],new_spline1d:109,ostream_typ:166,pchip_build:120,pchip_build_new:103,pchipsplin:40,pin:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,179,180,181,182,183,184],program:[23,24,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,187,188,189,190,191,192],quintic_spline_typ:58,quinticsplin:41,quinticsplinebas:42,real_typ:167,refer:[120,196],region_abcdem:55,relationship:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,46,47,48,171,172,173,174,175],ricerca:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,179,180,181,182,183,184],signtest:106,spline1d:[44,172,181,189],spline2d:[45,173,182,190],spline:[3,4,43,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,155,156,165,166,167,170,179,180,181,182,183,184,195,196],spline_build2:7,spline_build:8,spline_delet:21,spline_ev:11,spline_eval_d:10,spline_eval_dd:16,spline_eval_ddd:14,spline_eval_dddd:13,spline_eval_ddddd:19,spline_get_type_nam:15,spline_init:12,spline_mem_ptr:17,spline_new:20,spline_print:18,spline_push:6,spline_select:9,spline_type_1d:170,splineakima2d:[62,63,125,126],splineakima:[60,61,123,124],splinebessel:[64,65,127,128],splinebicub:[66,67,129,130],splinebilinear:[70,71,133,134],splinebiquint:[68,69,131,132],splineconst:[72,73,135,136],splinecub:[74,75,137,138],splinecubicbas:[76,139],splinehermit:[77,78,140,141],splinelinear:[79,80,142,143],splinepchip:[81,82,144,145],splinequint:[83,84,146,147],splinequinticbas:[85,86,148,149],splines1d:[94,95,157,158],splines2d:[96,97,159,160],splines_c_interface_h:1,splines_config_hh:52,splines_hh:51,splines_utils_hh:53,splinesbivari:[98,161],splinescinterfac:[3,4,23,24],splinesconfig:[99,162],splineset:[46,47,87,88,150,151,174,183,191],splinesetgc:[89,152],splinesurf:48,splinesutil:[100,101,163,164],splinetype1d:59,splinetype2d:57,splinevec:[49,90,91,153,154,175,184,192],src:[2,3,4,54,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],statu:196,struct:[121,168,186,193],subdirectori:177,submodul:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,179,180,181,182,183,184],test:196,toolbox:[177,179,180,181,182,183,184,196],type:[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,46,48,171,172,173,174,175],typedef:[93,121,122,165,166,167,168],uniform:110,univers:111,usag:196,user:[3,4,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,179,180,181,182,183,184],variabl:[92,121,122,168,170],view:196}}) \ No newline at end of file +Search.setIndex({docnames:["api-c/class_view_hierarchy","api-c/define_a00017_1ade8086f0fd9d3bd49264ebd0bd5b6cdc","api-c/file_SplinesCinterface.cc","api-c/file_SplinesCinterface.h","api-c/file_view_hierarchy","api-c/function_a00017_1a42401ba59200b4447ddf50065bc54e19","api-c/function_a00017_1a4902f807d78a555e8439bb87a48e3660","api-c/function_a00017_1a562f6cae383a972ff70c7b987c17cce0","api-c/function_a00017_1a5781fa56546770ce18340a2b63b57b27","api-c/function_a00017_1a5eb493ea98ed5f24685c240c5bcfb390","api-c/function_a00017_1a60354e5e10bea276df88937a859e36a4","api-c/function_a00017_1a8cd7b632a4eb70a3464d02cb31c74709","api-c/function_a00017_1a91da53c00f32c7e4f4aeaf8cdc8c4f70","api-c/function_a00017_1a9352cde120110961745d3cd48d67de8f","api-c/function_a00017_1a9b683ceadd58baaadaa58ca28268360a","api-c/function_a00017_1aa9a0988e747d636bd7a48b7dfb2b697e","api-c/function_a00017_1ab920995b11229ff331fcaaee2eeefc97","api-c/function_a00017_1aba9ab3ef53dc9452a0155168b80b499a","api-c/function_a00017_1ac15f1700b8ccf2d2e5266992cf38c132","api-c/function_a00017_1acdd57564fa775755a38daf483ffdf0e8","api-c/function_a00017_1af29f47a6ce8296c7fb0f4021b35997df","api-c/program_listing_file_SplinesCinterface.cc","api-c/program_listing_file_SplinesCinterface.h","api-c/root","api-c/unabridged_api","api-c/unabridged_orphan","api-cpp/class_a00144","api-cpp/class_a00148","api-cpp/class_a00152","api-cpp/class_a00156","api-cpp/class_a00160","api-cpp/class_a00164","api-cpp/class_a00168","api-cpp/class_a00172","api-cpp/class_a00176","api-cpp/class_a00180","api-cpp/class_a00184","api-cpp/class_a00188","api-cpp/class_a00192","api-cpp/class_a00196","api-cpp/class_a00200","api-cpp/class_a00204","api-cpp/class_a00208","api-cpp/class_a00212","api-cpp/class_a00216","api-cpp/class_a00220","api-cpp/class_a00224","api-cpp/class_a00228","api-cpp/class_a00232","api-cpp/class_view_hierarchy","api-cpp/define_a00098_1a258c7c0530540979548721b55b2338c9","api-cpp/define_a00116_1a7dc7bbba00bb80a0e5d5c7c94497a07f","api-cpp/define_a00131_1a7d5567c4bd7d1851b7456989e413ccde","api-cpp/enum_a00140_1a1678db4e652dc21a5a18803b3847eabe","api-cpp/enum_a00140_1a96aa14ec624ad77d84a7e5afa435c1ed","api-cpp/enum_a00140_1aa6410df8c515cad4d238820f523fead7","api-cpp/enum_a00140_1afc8c082d2849822ca15bdf52cb4409fb","api-cpp/enum_a00140_1afebc3f20f002ddfdcbd2d725d1aa55df","api-cpp/file_SplineAkima.cc","api-cpp/file_SplineAkima.hxx","api-cpp/file_SplineAkima2D.cc","api-cpp/file_SplineAkima2D.hxx","api-cpp/file_SplineBessel.cc","api-cpp/file_SplineBessel.hxx","api-cpp/file_SplineBiCubic.cc","api-cpp/file_SplineBiCubic.hxx","api-cpp/file_SplineBiQuintic.cc","api-cpp/file_SplineBiQuintic.hxx","api-cpp/file_SplineBilinear.cc","api-cpp/file_SplineBilinear.hxx","api-cpp/file_SplineConstant.cc","api-cpp/file_SplineConstant.hxx","api-cpp/file_SplineCubic.cc","api-cpp/file_SplineCubic.hxx","api-cpp/file_SplineCubicBase.cc","api-cpp/file_SplineHermite.cc","api-cpp/file_SplineHermite.hxx","api-cpp/file_SplineLinear.cc","api-cpp/file_SplineLinear.hxx","api-cpp/file_SplinePchip.cc","api-cpp/file_SplinePchip.hxx","api-cpp/file_SplineQuintic.cc","api-cpp/file_SplineQuintic.hxx","api-cpp/file_SplineQuinticBase.cc","api-cpp/file_SplineQuinticBase.hxx","api-cpp/file_SplineSet.cc","api-cpp/file_SplineSet.hxx","api-cpp/file_SplineSetGC.cc","api-cpp/file_SplineVec.cc","api-cpp/file_SplineVec.hxx","api-cpp/file_Splines.cc","api-cpp/file_Splines.hh","api-cpp/file_Splines1D.cc","api-cpp/file_Splines1D.hxx","api-cpp/file_Splines2D.cc","api-cpp/file_Splines2D.hxx","api-cpp/file_SplinesBivariate.cc","api-cpp/file_SplinesConfig.hh","api-cpp/file_SplinesUtils.cc","api-cpp/file_SplinesUtils.hh","api-cpp/file_view_hierarchy","api-cpp/function_a00140_1a22872cf871ce7a12ecda3a1f8d8e6cca","api-cpp/function_a00140_1a228f7065a249b0c10a9886fdc85f05f9","api-cpp/function_a00140_1a4a9fd3c1d8de964d95d730668e6b6016","api-cpp/function_a00140_1a4fe6464c49b4bba331d9751598a44f02","api-cpp/function_a00140_1a62d87177bbdb8da9a92701e528c57f00","api-cpp/function_a00140_1a64d0e892133ce06e0a3577c3bea0f549","api-cpp/function_a00140_1a8c7e2a599a7e341f0d8751b1bccb9a04","api-cpp/function_a00140_1a91c8806be0fd7584311f74dffe3ae3f7","api-cpp/function_a00140_1a9437a6461e2735153715bb43bc7d734f","api-cpp/function_a00140_1a94d2862da920a586358451ce3b3bcb41","api-cpp/function_a00140_1ab131f65c6191734b6f2e502257b57d0f","api-cpp/function_a00140_1ac18823b95eb83fa935ba4d33eb4e75a2","api-cpp/function_a00140_1ac224d3e03da08343b0bf26eb4170d6a2","api-cpp/function_a00140_1ac5930dd87f51e2577e79a2bdd746c6b2","api-cpp/function_a00140_1ad1cb03ee7c6c9f13f93df88d7612e26e","api-cpp/function_a00140_1ae61f54b18ac4089ead89302e4b99fee4","api-cpp/function_a00140_1aeb6c86ca718705bd71ad29b32c3f6d03","api-cpp/function_a00140_1aeea9f9f28b21dbf93715fd27a7c7106c","api-cpp/function_a00140_1aef9996b8a86809bcb1609ed9bab5cea2","api-cpp/function_a00140_1afb1c7d06a034be8c501f91321a50af3d","api-cpp/namespace_Splines","api-cpp/program_listing_file_SplineAkima.cc","api-cpp/program_listing_file_SplineAkima.hxx","api-cpp/program_listing_file_SplineAkima2D.cc","api-cpp/program_listing_file_SplineAkima2D.hxx","api-cpp/program_listing_file_SplineBessel.cc","api-cpp/program_listing_file_SplineBessel.hxx","api-cpp/program_listing_file_SplineBiCubic.cc","api-cpp/program_listing_file_SplineBiCubic.hxx","api-cpp/program_listing_file_SplineBiQuintic.cc","api-cpp/program_listing_file_SplineBiQuintic.hxx","api-cpp/program_listing_file_SplineBilinear.cc","api-cpp/program_listing_file_SplineBilinear.hxx","api-cpp/program_listing_file_SplineConstant.cc","api-cpp/program_listing_file_SplineConstant.hxx","api-cpp/program_listing_file_SplineCubic.cc","api-cpp/program_listing_file_SplineCubic.hxx","api-cpp/program_listing_file_SplineCubicBase.cc","api-cpp/program_listing_file_SplineHermite.cc","api-cpp/program_listing_file_SplineHermite.hxx","api-cpp/program_listing_file_SplineLinear.cc","api-cpp/program_listing_file_SplineLinear.hxx","api-cpp/program_listing_file_SplinePchip.cc","api-cpp/program_listing_file_SplinePchip.hxx","api-cpp/program_listing_file_SplineQuintic.cc","api-cpp/program_listing_file_SplineQuintic.hxx","api-cpp/program_listing_file_SplineQuinticBase.cc","api-cpp/program_listing_file_SplineQuinticBase.hxx","api-cpp/program_listing_file_SplineSet.cc","api-cpp/program_listing_file_SplineSet.hxx","api-cpp/program_listing_file_SplineSetGC.cc","api-cpp/program_listing_file_SplineVec.cc","api-cpp/program_listing_file_SplineVec.hxx","api-cpp/program_listing_file_Splines.cc","api-cpp/program_listing_file_Splines.hh","api-cpp/program_listing_file_Splines1D.cc","api-cpp/program_listing_file_Splines1D.hxx","api-cpp/program_listing_file_Splines2D.cc","api-cpp/program_listing_file_Splines2D.hxx","api-cpp/program_listing_file_SplinesBivariate.cc","api-cpp/program_listing_file_SplinesConfig.hh","api-cpp/program_listing_file_SplinesUtils.cc","api-cpp/program_listing_file_SplinesUtils.hh","api-cpp/root","api-cpp/typedef_a00140_1a0b83d8865bf650fca7ad1d657245a8a1","api-cpp/typedef_a00140_1a943d4ae4896c10228d57d004bd991e7f","api-cpp/typedef_a00140_1afabb8610fb01952c2fcf1f17337bd44a","api-cpp/unabridged_api","api-cpp/unabridged_orphan","api-cpp/variable_a00140_1a052166b362a237026fef2fff7e415070","api-cpp/variable_a00140_1abc365c9dfbe2a2107c842e479391be2c","api-matlab/class_a00038","api-matlab/class_a00042","api-matlab/class_a00046","api-matlab/class_a00050","api-matlab/class_a00054","api-matlab/class_view_hierarchy","api-matlab/file_BaseHermite.m","api-matlab/file_CompileSplinesLib.m","api-matlab/file_Spline1D.m","api-matlab/file_Spline2D.m","api-matlab/file_SplineSet.m","api-matlab/file_SplineVec.m","api-matlab/file_save_png.m","api-matlab/file_view_hierarchy","api-matlab/function_a00020_1a3953e50080941768996abba326a949a7","api-matlab/program_listing_file_BaseHermite.m","api-matlab/program_listing_file_CompileSplinesLib.m","api-matlab/program_listing_file_Spline1D.m","api-matlab/program_listing_file_Spline2D.m","api-matlab/program_listing_file_SplineSet.m","api-matlab/program_listing_file_SplineVec.m","api-matlab/program_listing_file_save_png.m","api-matlab/root","api-matlab/unabridged_api","api-matlab/unabridged_orphan","index","readme"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,sphinx:56},filenames:["api-c/class_view_hierarchy.rst","api-c/define_a00017_1ade8086f0fd9d3bd49264ebd0bd5b6cdc.rst","api-c/file_SplinesCinterface.cc.rst","api-c/file_SplinesCinterface.h.rst","api-c/file_view_hierarchy.rst","api-c/function_a00017_1a42401ba59200b4447ddf50065bc54e19.rst","api-c/function_a00017_1a4902f807d78a555e8439bb87a48e3660.rst","api-c/function_a00017_1a562f6cae383a972ff70c7b987c17cce0.rst","api-c/function_a00017_1a5781fa56546770ce18340a2b63b57b27.rst","api-c/function_a00017_1a5eb493ea98ed5f24685c240c5bcfb390.rst","api-c/function_a00017_1a60354e5e10bea276df88937a859e36a4.rst","api-c/function_a00017_1a8cd7b632a4eb70a3464d02cb31c74709.rst","api-c/function_a00017_1a91da53c00f32c7e4f4aeaf8cdc8c4f70.rst","api-c/function_a00017_1a9352cde120110961745d3cd48d67de8f.rst","api-c/function_a00017_1a9b683ceadd58baaadaa58ca28268360a.rst","api-c/function_a00017_1aa9a0988e747d636bd7a48b7dfb2b697e.rst","api-c/function_a00017_1ab920995b11229ff331fcaaee2eeefc97.rst","api-c/function_a00017_1aba9ab3ef53dc9452a0155168b80b499a.rst","api-c/function_a00017_1ac15f1700b8ccf2d2e5266992cf38c132.rst","api-c/function_a00017_1acdd57564fa775755a38daf483ffdf0e8.rst","api-c/function_a00017_1af29f47a6ce8296c7fb0f4021b35997df.rst","api-c/program_listing_file_SplinesCinterface.cc.rst","api-c/program_listing_file_SplinesCinterface.h.rst","api-c/root.rst","api-c/unabridged_api.rst","api-c/unabridged_orphan.rst","api-cpp/class_a00144.rst","api-cpp/class_a00148.rst","api-cpp/class_a00152.rst","api-cpp/class_a00156.rst","api-cpp/class_a00160.rst","api-cpp/class_a00164.rst","api-cpp/class_a00168.rst","api-cpp/class_a00172.rst","api-cpp/class_a00176.rst","api-cpp/class_a00180.rst","api-cpp/class_a00184.rst","api-cpp/class_a00188.rst","api-cpp/class_a00192.rst","api-cpp/class_a00196.rst","api-cpp/class_a00200.rst","api-cpp/class_a00204.rst","api-cpp/class_a00208.rst","api-cpp/class_a00212.rst","api-cpp/class_a00216.rst","api-cpp/class_a00220.rst","api-cpp/class_a00224.rst","api-cpp/class_a00228.rst","api-cpp/class_a00232.rst","api-cpp/class_view_hierarchy.rst","api-cpp/define_a00098_1a258c7c0530540979548721b55b2338c9.rst","api-cpp/define_a00116_1a7dc7bbba00bb80a0e5d5c7c94497a07f.rst","api-cpp/define_a00131_1a7d5567c4bd7d1851b7456989e413ccde.rst","api-cpp/enum_a00140_1a1678db4e652dc21a5a18803b3847eabe.rst","api-cpp/enum_a00140_1a96aa14ec624ad77d84a7e5afa435c1ed.rst","api-cpp/enum_a00140_1aa6410df8c515cad4d238820f523fead7.rst","api-cpp/enum_a00140_1afc8c082d2849822ca15bdf52cb4409fb.rst","api-cpp/enum_a00140_1afebc3f20f002ddfdcbd2d725d1aa55df.rst","api-cpp/file_SplineAkima.cc.rst","api-cpp/file_SplineAkima.hxx.rst","api-cpp/file_SplineAkima2D.cc.rst","api-cpp/file_SplineAkima2D.hxx.rst","api-cpp/file_SplineBessel.cc.rst","api-cpp/file_SplineBessel.hxx.rst","api-cpp/file_SplineBiCubic.cc.rst","api-cpp/file_SplineBiCubic.hxx.rst","api-cpp/file_SplineBiQuintic.cc.rst","api-cpp/file_SplineBiQuintic.hxx.rst","api-cpp/file_SplineBilinear.cc.rst","api-cpp/file_SplineBilinear.hxx.rst","api-cpp/file_SplineConstant.cc.rst","api-cpp/file_SplineConstant.hxx.rst","api-cpp/file_SplineCubic.cc.rst","api-cpp/file_SplineCubic.hxx.rst","api-cpp/file_SplineCubicBase.cc.rst","api-cpp/file_SplineHermite.cc.rst","api-cpp/file_SplineHermite.hxx.rst","api-cpp/file_SplineLinear.cc.rst","api-cpp/file_SplineLinear.hxx.rst","api-cpp/file_SplinePchip.cc.rst","api-cpp/file_SplinePchip.hxx.rst","api-cpp/file_SplineQuintic.cc.rst","api-cpp/file_SplineQuintic.hxx.rst","api-cpp/file_SplineQuinticBase.cc.rst","api-cpp/file_SplineQuinticBase.hxx.rst","api-cpp/file_SplineSet.cc.rst","api-cpp/file_SplineSet.hxx.rst","api-cpp/file_SplineSetGC.cc.rst","api-cpp/file_SplineVec.cc.rst","api-cpp/file_SplineVec.hxx.rst","api-cpp/file_Splines.cc.rst","api-cpp/file_Splines.hh.rst","api-cpp/file_Splines1D.cc.rst","api-cpp/file_Splines1D.hxx.rst","api-cpp/file_Splines2D.cc.rst","api-cpp/file_Splines2D.hxx.rst","api-cpp/file_SplinesBivariate.cc.rst","api-cpp/file_SplinesConfig.hh.rst","api-cpp/file_SplinesUtils.cc.rst","api-cpp/file_SplinesUtils.hh.rst","api-cpp/file_view_hierarchy.rst","api-cpp/function_a00140_1a22872cf871ce7a12ecda3a1f8d8e6cca.rst","api-cpp/function_a00140_1a228f7065a249b0c10a9886fdc85f05f9.rst","api-cpp/function_a00140_1a4a9fd3c1d8de964d95d730668e6b6016.rst","api-cpp/function_a00140_1a4fe6464c49b4bba331d9751598a44f02.rst","api-cpp/function_a00140_1a62d87177bbdb8da9a92701e528c57f00.rst","api-cpp/function_a00140_1a64d0e892133ce06e0a3577c3bea0f549.rst","api-cpp/function_a00140_1a8c7e2a599a7e341f0d8751b1bccb9a04.rst","api-cpp/function_a00140_1a91c8806be0fd7584311f74dffe3ae3f7.rst","api-cpp/function_a00140_1a9437a6461e2735153715bb43bc7d734f.rst","api-cpp/function_a00140_1a94d2862da920a586358451ce3b3bcb41.rst","api-cpp/function_a00140_1ab131f65c6191734b6f2e502257b57d0f.rst","api-cpp/function_a00140_1ac18823b95eb83fa935ba4d33eb4e75a2.rst","api-cpp/function_a00140_1ac224d3e03da08343b0bf26eb4170d6a2.rst","api-cpp/function_a00140_1ac5930dd87f51e2577e79a2bdd746c6b2.rst","api-cpp/function_a00140_1ad1cb03ee7c6c9f13f93df88d7612e26e.rst","api-cpp/function_a00140_1ae61f54b18ac4089ead89302e4b99fee4.rst","api-cpp/function_a00140_1aeb6c86ca718705bd71ad29b32c3f6d03.rst","api-cpp/function_a00140_1aeea9f9f28b21dbf93715fd27a7c7106c.rst","api-cpp/function_a00140_1aef9996b8a86809bcb1609ed9bab5cea2.rst","api-cpp/function_a00140_1afb1c7d06a034be8c501f91321a50af3d.rst","api-cpp/namespace_Splines.rst","api-cpp/program_listing_file_SplineAkima.cc.rst","api-cpp/program_listing_file_SplineAkima.hxx.rst","api-cpp/program_listing_file_SplineAkima2D.cc.rst","api-cpp/program_listing_file_SplineAkima2D.hxx.rst","api-cpp/program_listing_file_SplineBessel.cc.rst","api-cpp/program_listing_file_SplineBessel.hxx.rst","api-cpp/program_listing_file_SplineBiCubic.cc.rst","api-cpp/program_listing_file_SplineBiCubic.hxx.rst","api-cpp/program_listing_file_SplineBiQuintic.cc.rst","api-cpp/program_listing_file_SplineBiQuintic.hxx.rst","api-cpp/program_listing_file_SplineBilinear.cc.rst","api-cpp/program_listing_file_SplineBilinear.hxx.rst","api-cpp/program_listing_file_SplineConstant.cc.rst","api-cpp/program_listing_file_SplineConstant.hxx.rst","api-cpp/program_listing_file_SplineCubic.cc.rst","api-cpp/program_listing_file_SplineCubic.hxx.rst","api-cpp/program_listing_file_SplineCubicBase.cc.rst","api-cpp/program_listing_file_SplineHermite.cc.rst","api-cpp/program_listing_file_SplineHermite.hxx.rst","api-cpp/program_listing_file_SplineLinear.cc.rst","api-cpp/program_listing_file_SplineLinear.hxx.rst","api-cpp/program_listing_file_SplinePchip.cc.rst","api-cpp/program_listing_file_SplinePchip.hxx.rst","api-cpp/program_listing_file_SplineQuintic.cc.rst","api-cpp/program_listing_file_SplineQuintic.hxx.rst","api-cpp/program_listing_file_SplineQuinticBase.cc.rst","api-cpp/program_listing_file_SplineQuinticBase.hxx.rst","api-cpp/program_listing_file_SplineSet.cc.rst","api-cpp/program_listing_file_SplineSet.hxx.rst","api-cpp/program_listing_file_SplineSetGC.cc.rst","api-cpp/program_listing_file_SplineVec.cc.rst","api-cpp/program_listing_file_SplineVec.hxx.rst","api-cpp/program_listing_file_Splines.cc.rst","api-cpp/program_listing_file_Splines.hh.rst","api-cpp/program_listing_file_Splines1D.cc.rst","api-cpp/program_listing_file_Splines1D.hxx.rst","api-cpp/program_listing_file_Splines2D.cc.rst","api-cpp/program_listing_file_Splines2D.hxx.rst","api-cpp/program_listing_file_SplinesBivariate.cc.rst","api-cpp/program_listing_file_SplinesConfig.hh.rst","api-cpp/program_listing_file_SplinesUtils.cc.rst","api-cpp/program_listing_file_SplinesUtils.hh.rst","api-cpp/root.rst","api-cpp/typedef_a00140_1a0b83d8865bf650fca7ad1d657245a8a1.rst","api-cpp/typedef_a00140_1a943d4ae4896c10228d57d004bd991e7f.rst","api-cpp/typedef_a00140_1afabb8610fb01952c2fcf1f17337bd44a.rst","api-cpp/unabridged_api.rst","api-cpp/unabridged_orphan.rst","api-cpp/variable_a00140_1a052166b362a237026fef2fff7e415070.rst","api-cpp/variable_a00140_1abc365c9dfbe2a2107c842e479391be2c.rst","api-matlab/class_a00038.rst","api-matlab/class_a00042.rst","api-matlab/class_a00046.rst","api-matlab/class_a00050.rst","api-matlab/class_a00054.rst","api-matlab/class_view_hierarchy.rst","api-matlab/file_BaseHermite.m.rst","api-matlab/file_CompileSplinesLib.m.rst","api-matlab/file_Spline1D.m.rst","api-matlab/file_Spline2D.m.rst","api-matlab/file_SplineSet.m.rst","api-matlab/file_SplineVec.m.rst","api-matlab/file_save_png.m.rst","api-matlab/file_view_hierarchy.rst","api-matlab/function_a00020_1a3953e50080941768996abba326a949a7.rst","api-matlab/program_listing_file_BaseHermite.m.rst","api-matlab/program_listing_file_CompileSplinesLib.m.rst","api-matlab/program_listing_file_Spline1D.m.rst","api-matlab/program_listing_file_Spline2D.m.rst","api-matlab/program_listing_file_SplineSet.m.rst","api-matlab/program_listing_file_SplineVec.m.rst","api-matlab/program_listing_file_save_png.m.rst","api-matlab/root.rst","api-matlab/unabridged_api.rst","api-matlab/unabridged_orphan.rst","index.rst","readme.rst"],objects:{"":{"BaseHermite::BaseHermite":[172,2,1,"_CPPv4N11BaseHermite11BaseHermiteEv"],"BaseHermite::L2_first_derivative":[172,2,1,"_CPPv4N11BaseHermite19L2_first_derivativeE2in"],"BaseHermite::L2_first_derivative::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite19L2_first_derivativeE2in"],"BaseHermite::L2_second_derivative":[172,2,1,"_CPPv4N11BaseHermite20L2_second_derivativeE2in"],"BaseHermite::L2_second_derivative::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite20L2_second_derivativeE2in"],"BaseHermite::L2_third_derivative":[172,2,1,"_CPPv4N11BaseHermite19L2_third_derivativeE2in"],"BaseHermite::L2_third_derivative::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite19L2_third_derivativeE2in"],"BaseHermite::approximate_length":[172,2,1,"_CPPv4N11BaseHermite18approximate_lengthE2in2in"],"BaseHermite::approximate_length::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite18approximate_lengthE2in2in"],"BaseHermite::approximate_length::varargin":[172,3,1,"_CPPv4N11BaseHermite18approximate_lengthE2in2in"],"BaseHermite::base":[172,2,1,"_CPPv4N11BaseHermite4baseE2in2in"],"BaseHermite::base5":[172,2,1,"_CPPv4N11BaseHermite5base5E2in2in"],"BaseHermite::base5::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite5base5E2in2in"],"BaseHermite::base5::varargin":[172,3,1,"_CPPv4N11BaseHermite5base5E2in2in"],"BaseHermite::base5_D":[172,2,1,"_CPPv4N11BaseHermite7base5_DE2in2in"],"BaseHermite::base5_D::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite7base5_DE2in2in"],"BaseHermite::base5_D::varargin":[172,3,1,"_CPPv4N11BaseHermite7base5_DE2in2in"],"BaseHermite::base5_DD":[172,2,1,"_CPPv4N11BaseHermite8base5_DDE2in2in"],"BaseHermite::base5_DD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite8base5_DDE2in2in"],"BaseHermite::base5_DD::varargin":[172,3,1,"_CPPv4N11BaseHermite8base5_DDE2in2in"],"BaseHermite::base5_DDD":[172,2,1,"_CPPv4N11BaseHermite9base5_DDDE2in2in"],"BaseHermite::base5_DDD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite9base5_DDDE2in2in"],"BaseHermite::base5_DDD::varargin":[172,3,1,"_CPPv4N11BaseHermite9base5_DDDE2in2in"],"BaseHermite::base5_DDDD":[172,2,1,"_CPPv4N11BaseHermite10base5_DDDDE2in2in"],"BaseHermite::base5_DDDD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite10base5_DDDDE2in2in"],"BaseHermite::base5_DDDD::varargin":[172,3,1,"_CPPv4N11BaseHermite10base5_DDDDE2in2in"],"BaseHermite::base5_DDDDD":[172,2,1,"_CPPv4N11BaseHermite11base5_DDDDDE2in2in"],"BaseHermite::base5_DDDDD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite11base5_DDDDDE2in2in"],"BaseHermite::base5_DDDDD::varargin":[172,3,1,"_CPPv4N11BaseHermite11base5_DDDDDE2in2in"],"BaseHermite::base::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite4baseE2in2in"],"BaseHermite::base::varargin":[172,3,1,"_CPPv4N11BaseHermite4baseE2in2in"],"BaseHermite::base_D":[172,2,1,"_CPPv4N11BaseHermite6base_DE2in2in"],"BaseHermite::base_D::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite6base_DE2in2in"],"BaseHermite::base_D::varargin":[172,3,1,"_CPPv4N11BaseHermite6base_DE2in2in"],"BaseHermite::base_DD":[172,2,1,"_CPPv4N11BaseHermite7base_DDE2in2in"],"BaseHermite::base_DD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite7base_DDE2in2in"],"BaseHermite::base_DD::varargin":[172,3,1,"_CPPv4N11BaseHermite7base_DDE2in2in"],"BaseHermite::base_DDD":[172,2,1,"_CPPv4N11BaseHermite8base_DDDE2in2in"],"BaseHermite::base_DDD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite8base_DDDE2in2in"],"BaseHermite::base_DDD::varargin":[172,3,1,"_CPPv4N11BaseHermite8base_DDDE2in2in"],"BaseHermite::bezier_to_hermite":[172,2,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::bezier_to_hermite::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::bezier_to_hermite::p0":[172,3,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::bezier_to_hermite::p1":[172,3,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::bezier_to_hermite::p2":[172,3,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::bezier_to_hermite::p3":[172,3,1,"_CPPv4N11BaseHermite17bezier_to_hermiteE2in2in2in2in2in"],"BaseHermite::cut":[172,2,1,"_CPPv4N11BaseHermite3cutE2in2in"],"BaseHermite::cut::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite3cutE2in2in"],"BaseHermite::cut::varargin":[172,3,1,"_CPPv4N11BaseHermite3cutE2in2in"],"BaseHermite::eval":[172,2,1,"_CPPv4N11BaseHermite4evalE2in2in"],"BaseHermite::eval5":[172,2,1,"_CPPv4N11BaseHermite5eval5E2in2in"],"BaseHermite::eval5::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite5eval5E2in2in"],"BaseHermite::eval5::varargin":[172,3,1,"_CPPv4N11BaseHermite5eval5E2in2in"],"BaseHermite::eval5_D":[172,2,1,"_CPPv4N11BaseHermite7eval5_DE2in2in"],"BaseHermite::eval5_D::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite7eval5_DE2in2in"],"BaseHermite::eval5_D::varargin":[172,3,1,"_CPPv4N11BaseHermite7eval5_DE2in2in"],"BaseHermite::eval5_DD":[172,2,1,"_CPPv4N11BaseHermite8eval5_DDE2in2in"],"BaseHermite::eval5_DD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite8eval5_DDE2in2in"],"BaseHermite::eval5_DD::varargin":[172,3,1,"_CPPv4N11BaseHermite8eval5_DDE2in2in"],"BaseHermite::eval5_DDD":[172,2,1,"_CPPv4N11BaseHermite9eval5_DDDE2in2in"],"BaseHermite::eval5_DDD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite9eval5_DDDE2in2in"],"BaseHermite::eval5_DDD::varargin":[172,3,1,"_CPPv4N11BaseHermite9eval5_DDDE2in2in"],"BaseHermite::eval5_DDDD":[172,2,1,"_CPPv4N11BaseHermite10eval5_DDDDE2in2in"],"BaseHermite::eval5_DDDD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite10eval5_DDDDE2in2in"],"BaseHermite::eval5_DDDD::varargin":[172,3,1,"_CPPv4N11BaseHermite10eval5_DDDDE2in2in"],"BaseHermite::eval5_DDDDD":[172,2,1,"_CPPv4N11BaseHermite11eval5_DDDDDE2in2in"],"BaseHermite::eval5_DDDDD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite11eval5_DDDDDE2in2in"],"BaseHermite::eval5_DDDDD::varargin":[172,3,1,"_CPPv4N11BaseHermite11eval5_DDDDDE2in2in"],"BaseHermite::eval::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite4evalE2in2in"],"BaseHermite::eval::varargin":[172,3,1,"_CPPv4N11BaseHermite4evalE2in2in"],"BaseHermite::eval_D":[172,2,1,"_CPPv4N11BaseHermite6eval_DE2in2in"],"BaseHermite::eval_D::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite6eval_DE2in2in"],"BaseHermite::eval_D::varargin":[172,3,1,"_CPPv4N11BaseHermite6eval_DE2in2in"],"BaseHermite::eval_DD":[172,2,1,"_CPPv4N11BaseHermite7eval_DDE2in2in"],"BaseHermite::eval_DD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite7eval_DDE2in2in"],"BaseHermite::eval_DD::varargin":[172,3,1,"_CPPv4N11BaseHermite7eval_DDE2in2in"],"BaseHermite::eval_DDD":[172,2,1,"_CPPv4N11BaseHermite8eval_DDDE2in2in"],"BaseHermite::eval_DDD::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite8eval_DDDE2in2in"],"BaseHermite::eval_DDD::varargin":[172,3,1,"_CPPv4N11BaseHermite8eval_DDDE2in2in"],"BaseHermite::hermite_to_bezier":[172,2,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"BaseHermite::hermite_to_bezier::ignoredArg":[172,3,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"BaseHermite::hermite_to_bezier::p0":[172,3,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"BaseHermite::hermite_to_bezier::p1":[172,3,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"BaseHermite::hermite_to_bezier::t0":[172,3,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"BaseHermite::hermite_to_bezier::t1":[172,3,1,"_CPPv4N11BaseHermite17hermite_to_bezierE2in2in2in2in2in"],"SPLINE_build2::n":[6,3,1,"_CPPv413SPLINE_build2PKdPKdi"],"SPLINE_build2::x":[6,3,1,"_CPPv413SPLINE_build2PKdPKdi"],"SPLINE_build2::y":[6,3,1,"_CPPv413SPLINE_build2PKdPKdi"],"SPLINE_delete::id":[20,3,1,"_CPPv413SPLINE_deletePKc"],"SPLINE_eval::x":[10,3,1,"_CPPv411SPLINE_evald"],"SPLINE_eval_D::x":[9,3,1,"_CPPv413SPLINE_eval_Dd"],"SPLINE_eval_DD::x":[15,3,1,"_CPPv414SPLINE_eval_DDd"],"SPLINE_eval_DDD::x":[13,3,1,"_CPPv415SPLINE_eval_DDDd"],"SPLINE_eval_DDDD::x":[12,3,1,"_CPPv416SPLINE_eval_DDDDd"],"SPLINE_eval_DDDDD::x":[18,3,1,"_CPPv417SPLINE_eval_DDDDDd"],"SPLINE_mem_ptr::id":[16,3,1,"_CPPv414SPLINE_mem_ptrPKc"],"SPLINE_new::id":[19,3,1,"_CPPv410SPLINE_newPKcPKc"],"SPLINE_new::type":[19,3,1,"_CPPv410SPLINE_newPKcPKc"],"SPLINE_push::x":[5,3,1,"_CPPv411SPLINE_pushdd"],"SPLINE_push::y":[5,3,1,"_CPPv411SPLINE_pushdd"],"SPLINE_select::id":[8,3,1,"_CPPv413SPLINE_selectPKc"],"Spline1D::Spline1D":[173,2,1,"_CPPv4N8Spline1D8Spline1DE2in2in"],"Spline1D::Spline1D::kind":[173,3,1,"_CPPv4N8Spline1D8Spline1DE2in2in"],"Spline1D::Spline1D::varargin":[173,3,1,"_CPPv4N8Spline1D8Spline1DE2in2in"],"Spline1D::build":[173,2,1,"_CPPv4N8Spline1D5buildE2in2in"],"Spline1D::build::self":[173,3,1,"_CPPv4N8Spline1D5buildE2in2in"],"Spline1D::build::varargin":[173,3,1,"_CPPv4N8Spline1D5buildE2in2in"],"Spline1D::eval":[173,2,1,"_CPPv4N8Spline1D4evalE2in2in"],"Spline1D::eval::self":[173,3,1,"_CPPv4N8Spline1D4evalE2in2in"],"Spline1D::eval::x":[173,3,1,"_CPPv4N8Spline1D4evalE2in2in"],"Spline1D::eval_D":[173,2,1,"_CPPv4N8Spline1D6eval_DE2in2in"],"Spline1D::eval_D::self":[173,3,1,"_CPPv4N8Spline1D6eval_DE2in2in"],"Spline1D::eval_D::x":[173,3,1,"_CPPv4N8Spline1D6eval_DE2in2in"],"Spline1D::eval_DD":[173,2,1,"_CPPv4N8Spline1D7eval_DDE2in2in"],"Spline1D::eval_DD::self":[173,3,1,"_CPPv4N8Spline1D7eval_DDE2in2in"],"Spline1D::eval_DD::x":[173,3,1,"_CPPv4N8Spline1D7eval_DDE2in2in"],"Spline1D::eval_DDD":[173,2,1,"_CPPv4N8Spline1D8eval_DDDE2in2in"],"Spline1D::eval_DDD::self":[173,3,1,"_CPPv4N8Spline1D8eval_DDDE2in2in"],"Spline1D::eval_DDD::x":[173,3,1,"_CPPv4N8Spline1D8eval_DDDE2in2in"],"Spline1D::eval_DDDD":[173,2,1,"_CPPv4N8Spline1D9eval_DDDDE2in2in"],"Spline1D::eval_DDDD::self":[173,3,1,"_CPPv4N8Spline1D9eval_DDDDE2in2in"],"Spline1D::eval_DDDD::x":[173,3,1,"_CPPv4N8Spline1D9eval_DDDDE2in2in"],"Spline1D::eval_DDDDD":[173,2,1,"_CPPv4N8Spline1D10eval_DDDDDE2in2in"],"Spline1D::eval_DDDDD::self":[173,3,1,"_CPPv4N8Spline1D10eval_DDDDDE2in2in"],"Spline1D::eval_DDDDD::x":[173,3,1,"_CPPv4N8Spline1D10eval_DDDDDE2in2in"],"Spline1D::eval_y_min_max":[173,2,1,"_CPPv4N8Spline1D14eval_y_min_maxE2in"],"Spline1D::eval_y_min_max::self":[173,3,1,"_CPPv4N8Spline1D14eval_y_min_maxE2in"],"Spline1D::is_bounded":[173,2,1,"_CPPv4N8Spline1D10is_boundedE2in"],"Spline1D::is_bounded::self":[173,3,1,"_CPPv4N8Spline1D10is_boundedE2in"],"Spline1D::is_closed":[173,2,1,"_CPPv4N8Spline1D9is_closedE2in"],"Spline1D::is_closed::self":[173,3,1,"_CPPv4N8Spline1D9is_closedE2in"],"Spline1D::is_extended_constant":[173,2,1,"_CPPv4N8Spline1D20is_extended_constantE2in"],"Spline1D::is_extended_constant::self":[173,3,1,"_CPPv4N8Spline1D20is_extended_constantE2in"],"Spline1D::make_bounded":[173,2,1,"_CPPv4N8Spline1D12make_boundedE2in"],"Spline1D::make_bounded::self":[173,3,1,"_CPPv4N8Spline1D12make_boundedE2in"],"Spline1D::make_closed":[173,2,1,"_CPPv4N8Spline1D11make_closedE2in"],"Spline1D::make_closed::self":[173,3,1,"_CPPv4N8Spline1D11make_closedE2in"],"Spline1D::make_extended_constant":[173,2,1,"_CPPv4N8Spline1D22make_extended_constantE2in"],"Spline1D::make_extended_constant::self":[173,3,1,"_CPPv4N8Spline1D22make_extended_constantE2in"],"Spline1D::make_extended_not_constant":[173,2,1,"_CPPv4N8Spline1D26make_extended_not_constantE2in"],"Spline1D::make_extended_not_constant::self":[173,3,1,"_CPPv4N8Spline1D26make_extended_not_constantE2in"],"Spline1D::make_opened":[173,2,1,"_CPPv4N8Spline1D11make_openedE2in"],"Spline1D::make_opened::self":[173,3,1,"_CPPv4N8Spline1D11make_openedE2in"],"Spline1D::make_unbounded":[173,2,1,"_CPPv4N8Spline1D14make_unboundedE2in"],"Spline1D::make_unbounded::self":[173,3,1,"_CPPv4N8Spline1D14make_unboundedE2in"],"Spline1D::xBegin":[173,2,1,"_CPPv4N8Spline1D6xBeginE2in"],"Spline1D::xBegin::self":[173,3,1,"_CPPv4N8Spline1D6xBeginE2in"],"Spline1D::xEnd":[173,2,1,"_CPPv4N8Spline1D4xEndE2in"],"Spline1D::xEnd::self":[173,3,1,"_CPPv4N8Spline1D4xEndE2in"],"Spline1D::xMax":[173,2,1,"_CPPv4N8Spline1D4xMaxE2in"],"Spline1D::xMax::self":[173,3,1,"_CPPv4N8Spline1D4xMaxE2in"],"Spline1D::xMin":[173,2,1,"_CPPv4N8Spline1D4xMinE2in"],"Spline1D::xMin::self":[173,3,1,"_CPPv4N8Spline1D4xMinE2in"],"Spline1D::yBegin":[173,2,1,"_CPPv4N8Spline1D6yBeginE2in"],"Spline1D::yBegin::self":[173,3,1,"_CPPv4N8Spline1D6yBeginE2in"],"Spline1D::yEnd":[173,2,1,"_CPPv4N8Spline1D4yEndE2in"],"Spline1D::yEnd::self":[173,3,1,"_CPPv4N8Spline1D4yEndE2in"],"Spline1D::yMax":[173,2,1,"_CPPv4N8Spline1D4yMaxE2in"],"Spline1D::yMax::self":[173,3,1,"_CPPv4N8Spline1D4yMaxE2in"],"Spline1D::yMin":[173,2,1,"_CPPv4N8Spline1D4yMinE2in"],"Spline1D::yMin::self":[173,3,1,"_CPPv4N8Spline1D4yMinE2in"],"Spline2D::Spline2D":[174,2,1,"_CPPv4N8Spline2D8Spline2DE2in2in"],"Spline2D::Spline2D::name":[174,3,1,"_CPPv4N8Spline2D8Spline2DE2in2in"],"Spline2D::Spline2D::varargin":[174,3,1,"_CPPv4N8Spline2D8Spline2DE2in2in"],"Spline2D::build":[174,2,1,"_CPPv4N8Spline2D5buildE2in2in2in2in"],"Spline2D::build::self":[174,3,1,"_CPPv4N8Spline2D5buildE2in2in2in2in"],"Spline2D::build::x":[174,3,1,"_CPPv4N8Spline2D5buildE2in2in2in2in"],"Spline2D::build::y":[174,3,1,"_CPPv4N8Spline2D5buildE2in2in2in2in"],"Spline2D::build::z":[174,3,1,"_CPPv4N8Spline2D5buildE2in2in2in2in"],"Spline2D::eval":[174,2,1,"_CPPv4N8Spline2D4evalE2in2in2in"],"Spline2D::eval::self":[174,3,1,"_CPPv4N8Spline2D4evalE2in2in2in"],"Spline2D::eval::x":[174,3,1,"_CPPv4N8Spline2D4evalE2in2in2in"],"Spline2D::eval::y":[174,3,1,"_CPPv4N8Spline2D4evalE2in2in2in"],"Spline2D::eval_Dx":[174,2,1,"_CPPv4N8Spline2D7eval_DxE2in2in2in"],"Spline2D::eval_Dx::self":[174,3,1,"_CPPv4N8Spline2D7eval_DxE2in2in2in"],"Spline2D::eval_Dx::x":[174,3,1,"_CPPv4N8Spline2D7eval_DxE2in2in2in"],"Spline2D::eval_Dx::y":[174,3,1,"_CPPv4N8Spline2D7eval_DxE2in2in2in"],"Spline2D::eval_Dxx":[174,2,1,"_CPPv4N8Spline2D8eval_DxxE2in2in2in"],"Spline2D::eval_Dxx::self":[174,3,1,"_CPPv4N8Spline2D8eval_DxxE2in2in2in"],"Spline2D::eval_Dxx::x":[174,3,1,"_CPPv4N8Spline2D8eval_DxxE2in2in2in"],"Spline2D::eval_Dxx::y":[174,3,1,"_CPPv4N8Spline2D8eval_DxxE2in2in2in"],"Spline2D::eval_Dxy":[174,2,1,"_CPPv4N8Spline2D8eval_DxyE2in2in2in"],"Spline2D::eval_Dxy::self":[174,3,1,"_CPPv4N8Spline2D8eval_DxyE2in2in2in"],"Spline2D::eval_Dxy::x":[174,3,1,"_CPPv4N8Spline2D8eval_DxyE2in2in2in"],"Spline2D::eval_Dxy::y":[174,3,1,"_CPPv4N8Spline2D8eval_DxyE2in2in2in"],"Spline2D::eval_Dy":[174,2,1,"_CPPv4N8Spline2D7eval_DyE2in2in2in"],"Spline2D::eval_Dy::self":[174,3,1,"_CPPv4N8Spline2D7eval_DyE2in2in2in"],"Spline2D::eval_Dy::x":[174,3,1,"_CPPv4N8Spline2D7eval_DyE2in2in2in"],"Spline2D::eval_Dy::y":[174,3,1,"_CPPv4N8Spline2D7eval_DyE2in2in2in"],"Spline2D::eval_Dyy":[174,2,1,"_CPPv4N8Spline2D8eval_DyyE2in2in2in"],"Spline2D::eval_Dyy::self":[174,3,1,"_CPPv4N8Spline2D8eval_DyyE2in2in2in"],"Spline2D::eval_Dyy::x":[174,3,1,"_CPPv4N8Spline2D8eval_DyyE2in2in2in"],"Spline2D::eval_Dyy::y":[174,3,1,"_CPPv4N8Spline2D8eval_DyyE2in2in2in"],"Spline2D::is_x_bounded":[174,2,1,"_CPPv4N8Spline2D12is_x_boundedE2in"],"Spline2D::is_x_bounded::self":[174,3,1,"_CPPv4N8Spline2D12is_x_boundedE2in"],"Spline2D::is_x_closed":[174,2,1,"_CPPv4N8Spline2D11is_x_closedE2in"],"Spline2D::is_x_closed::self":[174,3,1,"_CPPv4N8Spline2D11is_x_closedE2in"],"Spline2D::is_y_bounded":[174,2,1,"_CPPv4N8Spline2D12is_y_boundedE2in"],"Spline2D::is_y_bounded::self":[174,3,1,"_CPPv4N8Spline2D12is_y_boundedE2in"],"Spline2D::is_y_closed":[174,2,1,"_CPPv4N8Spline2D11is_y_closedE2in"],"Spline2D::is_y_closed::self":[174,3,1,"_CPPv4N8Spline2D11is_y_closedE2in"],"Spline2D::make_x_bounded":[174,2,1,"_CPPv4N8Spline2D14make_x_boundedE2in"],"Spline2D::make_x_bounded::self":[174,3,1,"_CPPv4N8Spline2D14make_x_boundedE2in"],"Spline2D::make_x_closed":[174,2,1,"_CPPv4N8Spline2D13make_x_closedE2in"],"Spline2D::make_x_closed::self":[174,3,1,"_CPPv4N8Spline2D13make_x_closedE2in"],"Spline2D::make_x_opened":[174,2,1,"_CPPv4N8Spline2D13make_x_openedE2in"],"Spline2D::make_x_opened::self":[174,3,1,"_CPPv4N8Spline2D13make_x_openedE2in"],"Spline2D::make_x_unbounded":[174,2,1,"_CPPv4N8Spline2D16make_x_unboundedE2in"],"Spline2D::make_x_unbounded::self":[174,3,1,"_CPPv4N8Spline2D16make_x_unboundedE2in"],"Spline2D::make_y_bounded":[174,2,1,"_CPPv4N8Spline2D14make_y_boundedE2in"],"Spline2D::make_y_bounded::self":[174,3,1,"_CPPv4N8Spline2D14make_y_boundedE2in"],"Spline2D::make_y_closed":[174,2,1,"_CPPv4N8Spline2D13make_y_closedE2in"],"Spline2D::make_y_closed::self":[174,3,1,"_CPPv4N8Spline2D13make_y_closedE2in"],"Spline2D::make_y_opened":[174,2,1,"_CPPv4N8Spline2D13make_y_openedE2in"],"Spline2D::make_y_opened::self":[174,3,1,"_CPPv4N8Spline2D13make_y_openedE2in"],"Spline2D::make_y_unbounded":[174,2,1,"_CPPv4N8Spline2D16make_y_unboundedE2in"],"Spline2D::make_y_unbounded::self":[174,3,1,"_CPPv4N8Spline2D16make_y_unboundedE2in"],"SplineSet::SplineSet":[175,2,1,"_CPPv4N9SplineSet9SplineSetE2in"],"SplineSet::SplineSet::varargin":[175,3,1,"_CPPv4N9SplineSet9SplineSetE2in"],"SplineSet::build":[175,2,1,"_CPPv4N9SplineSet5buildE2in2in2in2in"],"SplineSet::build::kinds":[175,3,1,"_CPPv4N9SplineSet5buildE2in2in2in2in"],"SplineSet::build::self":[175,3,1,"_CPPv4N9SplineSet5buildE2in2in2in2in"],"SplineSet::build::x":[175,3,1,"_CPPv4N9SplineSet5buildE2in2in2in2in"],"SplineSet::build::y":[175,3,1,"_CPPv4N9SplineSet5buildE2in2in2in2in"],"SplineSet::eval":[175,2,1,"_CPPv4N9SplineSet4evalE2in2in"],"SplineSet::eval::self":[175,3,1,"_CPPv4N9SplineSet4evalE2in2in"],"SplineSet::eval::x":[175,3,1,"_CPPv4N9SplineSet4evalE2in2in"],"SplineSet::eval_D":[175,2,1,"_CPPv4N9SplineSet6eval_DE2in2in"],"SplineSet::eval_D::self":[175,3,1,"_CPPv4N9SplineSet6eval_DE2in2in"],"SplineSet::eval_D::x":[175,3,1,"_CPPv4N9SplineSet6eval_DE2in2in"],"SplineSet::eval_DD":[175,2,1,"_CPPv4N9SplineSet7eval_DDE2in2in"],"SplineSet::eval_DD::self":[175,3,1,"_CPPv4N9SplineSet7eval_DDE2in2in"],"SplineSet::eval_DD::x":[175,3,1,"_CPPv4N9SplineSet7eval_DDE2in2in"],"SplineSet::eval_DDD":[175,2,1,"_CPPv4N9SplineSet8eval_DDDE2in2in"],"SplineSet::eval_DDD::self":[175,3,1,"_CPPv4N9SplineSet8eval_DDDE2in2in"],"SplineSet::eval_DDD::x":[175,3,1,"_CPPv4N9SplineSet8eval_DDDE2in2in"],"SplineSet::tmax":[175,2,1,"_CPPv4N9SplineSet4tmaxE2in2in"],"SplineSet::tmax::self":[175,3,1,"_CPPv4N9SplineSet4tmaxE2in2in"],"SplineSet::tmax::x":[175,3,1,"_CPPv4N9SplineSet4tmaxE2in2in"],"SplineSet::tmin":[175,2,1,"_CPPv4N9SplineSet4tminE2in2in"],"SplineSet::tmin::self":[175,3,1,"_CPPv4N9SplineSet4tminE2in2in"],"SplineSet::tmin::x":[175,3,1,"_CPPv4N9SplineSet4tminE2in2in"],"SplineVec::CatmullRom":[176,2,1,"_CPPv4N9SplineVec10CatmullRomE2in"],"SplineVec::CatmullRom::self":[176,3,1,"_CPPv4N9SplineVec10CatmullRomE2in"],"SplineVec::SplineVec":[176,2,1,"_CPPv4N9SplineVec9SplineVecEv"],"SplineVec::centripetal":[176,2,1,"_CPPv4N9SplineVec11centripetalE2in"],"SplineVec::centripetal::self":[176,3,1,"_CPPv4N9SplineVec11centripetalE2in"],"SplineVec::chordal":[176,2,1,"_CPPv4N9SplineVec7chordalE2in"],"SplineVec::chordal::self":[176,3,1,"_CPPv4N9SplineVec7chordalE2in"],"SplineVec::curvature":[176,2,1,"_CPPv4N9SplineVec9curvatureE2in2in"],"SplineVec::curvature::self":[176,3,1,"_CPPv4N9SplineVec9curvatureE2in2in"],"SplineVec::curvature::x":[176,3,1,"_CPPv4N9SplineVec9curvatureE2in2in"],"SplineVec::curvature_D":[176,2,1,"_CPPv4N9SplineVec11curvature_DE2in2in"],"SplineVec::curvature_D::self":[176,3,1,"_CPPv4N9SplineVec11curvature_DE2in2in"],"SplineVec::curvature_D::x":[176,3,1,"_CPPv4N9SplineVec11curvature_DE2in2in"],"SplineVec::eval":[176,2,1,"_CPPv4N9SplineVec4evalE2in2in"],"SplineVec::eval::self":[176,3,1,"_CPPv4N9SplineVec4evalE2in2in"],"SplineVec::eval::x":[176,3,1,"_CPPv4N9SplineVec4evalE2in2in"],"SplineVec::eval_D":[176,2,1,"_CPPv4N9SplineVec6eval_DE2in2in"],"SplineVec::eval_D::self":[176,3,1,"_CPPv4N9SplineVec6eval_DE2in2in"],"SplineVec::eval_D::x":[176,3,1,"_CPPv4N9SplineVec6eval_DE2in2in"],"SplineVec::eval_DD":[176,2,1,"_CPPv4N9SplineVec7eval_DDE2in2in"],"SplineVec::eval_DD::self":[176,3,1,"_CPPv4N9SplineVec7eval_DDE2in2in"],"SplineVec::eval_DD::x":[176,3,1,"_CPPv4N9SplineVec7eval_DDE2in2in"],"SplineVec::eval_DDD":[176,2,1,"_CPPv4N9SplineVec8eval_DDDE2in2in"],"SplineVec::eval_DDD::self":[176,3,1,"_CPPv4N9SplineVec8eval_DDDE2in2in"],"SplineVec::eval_DDD::x":[176,3,1,"_CPPv4N9SplineVec8eval_DDDE2in2in"],"SplineVec::get_knots":[176,2,1,"_CPPv4N9SplineVec9get_knotsE2in"],"SplineVec::get_knots::self":[176,3,1,"_CPPv4N9SplineVec9get_knotsE2in"],"SplineVec::knots":[176,2,1,"_CPPv4N9SplineVec5knotsE2in2in"],"SplineVec::knots::self":[176,3,1,"_CPPv4N9SplineVec5knotsE2in2in"],"SplineVec::knots::t":[176,3,1,"_CPPv4N9SplineVec5knotsE2in2in"],"SplineVec::setup":[176,2,1,"_CPPv4N9SplineVec5setupE2in2in"],"SplineVec::setup::P":[176,3,1,"_CPPv4N9SplineVec5setupE2in2in"],"SplineVec::setup::self":[176,3,1,"_CPPv4N9SplineVec5setupE2in2in"],"SplineVec::tmax":[176,2,1,"_CPPv4N9SplineVec4tmaxE2in2in"],"SplineVec::tmax::self":[176,3,1,"_CPPv4N9SplineVec4tmaxE2in2in"],"SplineVec::tmax::x":[176,3,1,"_CPPv4N9SplineVec4tmaxE2in2in"],"SplineVec::tmin":[176,2,1,"_CPPv4N9SplineVec4tminE2in2in"],"SplineVec::tmin::self":[176,3,1,"_CPPv4N9SplineVec4tminE2in2in"],"SplineVec::tmin::x":[176,3,1,"_CPPv4N9SplineVec4tminE2in2in"],"Splines::AKIMA2D_TYPE":[55,4,1,"_CPPv4N7Splines12SplineType2D12AKIMA2D_TYPEE"],"Splines::AKIMA_QUINTIC":[56,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13AKIMA_QUINTICE"],"Splines::AKIMA_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D10AKIMA_TYPEE"],"Splines::Akima2Dspline":[27,1,1,"_CPPv4N7Splines13Akima2DsplineE"],"Splines::Akima2Dspline::Akima2Dspline":[27,2,1,"_CPPv4N7Splines13Akima2Dspline13Akima2DsplineERK6string"],"Splines::Akima2Dspline::Akima2Dspline::name":[27,3,1,"_CPPv4N7Splines13Akima2Dspline13Akima2DsplineERK6string"],"Splines::Akima2Dspline::D":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline1DE9real_type9real_typeAL3E_9real_type"],"Splines::Akima2Dspline::D::d":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline1DE9real_type9real_typeAL3E_9real_type"],"Splines::Akima2Dspline::D::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline1DE9real_type9real_typeAL3E_9real_type"],"Splines::Akima2Dspline::D::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline1DE9real_type9real_typeAL3E_9real_type"],"Splines::Akima2Dspline::DD":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Akima2Dspline::DD::dd":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Akima2Dspline::DD::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Akima2Dspline::DD::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Akima2Dspline::Dx":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline2DxE9real_type9real_type"],"Splines::Akima2Dspline::Dx::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DxE9real_type9real_type"],"Splines::Akima2Dspline::Dx::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DxE9real_type9real_type"],"Splines::Akima2Dspline::DxNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline6DxNodeE7integer7integer"],"Splines::Akima2Dspline::DxNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline6DxNodeE7integer7integer"],"Splines::Akima2Dspline::DxNode::j":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline6DxNodeE7integer7integer"],"Splines::Akima2Dspline::Dxx":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline3DxxE9real_type9real_type"],"Splines::Akima2Dspline::Dxx::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DxxE9real_type9real_type"],"Splines::Akima2Dspline::Dxx::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DxxE9real_type9real_type"],"Splines::Akima2Dspline::Dxy":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline3DxyE9real_type9real_type"],"Splines::Akima2Dspline::Dxy::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DxyE9real_type9real_type"],"Splines::Akima2Dspline::Dxy::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DxyE9real_type9real_type"],"Splines::Akima2Dspline::DxyNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline7DxyNodeE7integer7integer"],"Splines::Akima2Dspline::DxyNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline7DxyNodeE7integer7integer"],"Splines::Akima2Dspline::DxyNode::j":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline7DxyNodeE7integer7integer"],"Splines::Akima2Dspline::Dy":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline2DyE9real_type9real_type"],"Splines::Akima2Dspline::Dy::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DyE9real_type9real_type"],"Splines::Akima2Dspline::Dy::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline2DyE9real_type9real_type"],"Splines::Akima2Dspline::DyNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline6DyNodeE7integer7integer"],"Splines::Akima2Dspline::DyNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline6DyNodeE7integer7integer"],"Splines::Akima2Dspline::DyNode::j":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline6DyNodeE7integer7integer"],"Splines::Akima2Dspline::Dyy":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline3DyyE9real_type9real_type"],"Splines::Akima2Dspline::Dyy::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DyyE9real_type9real_type"],"Splines::Akima2Dspline::Dyy::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline3DyyE9real_type9real_type"],"Splines::Akima2Dspline::build":[27,2,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::build::fortran_storage":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::build::gc":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK16GenericContainer"],"Splines::Akima2Dspline::build::incx":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Akima2Dspline::build::incy":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Akima2Dspline::build::ldZ":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Akima2Dspline::build::nx":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::Akima2Dspline::build::ny":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::Akima2Dspline::build::transposed":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::build::x":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::build::y":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::build::z":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Akima2Dspline::clear":[27,2,1,"_CPPv4N7Splines13Akima2Dspline5clearEv"],"Splines::Akima2Dspline::dump_data":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline9dump_dataER12ostream_type"],"Splines::Akima2Dspline::dump_data::s":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline9dump_dataER12ostream_type"],"Splines::Akima2Dspline::eval":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4evalE9real_type9real_type"],"Splines::Akima2Dspline::eval::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline4evalE9real_type9real_type"],"Splines::Akima2Dspline::eval::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline4evalE9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_1":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_1::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_1::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_1E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_2":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_2::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_1_2::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_1_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline8eval_D_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2_2":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_2_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2_2::x":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_2_2E9real_type9real_type"],"Splines::Akima2Dspline::eval_D_2_2::y":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline10eval_D_2_2E9real_type9real_type"],"Splines::Akima2Dspline::info":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4infoEv"],"Splines::Akima2Dspline::info::stream":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline4infoER12ostream_type"],"Splines::Akima2Dspline::is_x_bounded":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline12is_x_boundedEv"],"Splines::Akima2Dspline::is_x_closed":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline11is_x_closedEv"],"Splines::Akima2Dspline::is_y_bounded":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline12is_y_boundedEv"],"Splines::Akima2Dspline::is_y_closed":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline11is_y_closedEv"],"Splines::Akima2Dspline::make_x_bounded":[27,2,1,"_CPPv4N7Splines13Akima2Dspline14make_x_boundedEv"],"Splines::Akima2Dspline::make_x_closed":[27,2,1,"_CPPv4N7Splines13Akima2Dspline13make_x_closedEv"],"Splines::Akima2Dspline::make_x_opened":[27,2,1,"_CPPv4N7Splines13Akima2Dspline13make_x_openedEv"],"Splines::Akima2Dspline::make_x_unbounded":[27,2,1,"_CPPv4N7Splines13Akima2Dspline16make_x_unboundedEv"],"Splines::Akima2Dspline::make_y_bounded":[27,2,1,"_CPPv4N7Splines13Akima2Dspline14make_y_boundedEv"],"Splines::Akima2Dspline::make_y_closed":[27,2,1,"_CPPv4N7Splines13Akima2Dspline13make_y_closedEv"],"Splines::Akima2Dspline::make_y_opened":[27,2,1,"_CPPv4N7Splines13Akima2Dspline13make_y_openedEv"],"Splines::Akima2Dspline::make_y_unbounded":[27,2,1,"_CPPv4N7Splines13Akima2Dspline16make_y_unboundedEv"],"Splines::Akima2Dspline::name":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4nameEv"],"Splines::Akima2Dspline::numPointX":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline9numPointXEv"],"Splines::Akima2Dspline::numPointY":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline9numPointYEv"],"Splines::Akima2Dspline::operator()":[27,2,1,"_CPPv4NK7Splines13Akima2DsplineclE9real_type9real_type"],"Splines::Akima2Dspline::operator()::x":[27,3,1,"_CPPv4NK7Splines13Akima2DsplineclE9real_type9real_type"],"Splines::Akima2Dspline::operator()::y":[27,3,1,"_CPPv4NK7Splines13Akima2DsplineclE9real_type9real_type"],"Splines::Akima2Dspline::setup":[27,2,1,"_CPPv4N7Splines13Akima2Dspline5setupERK16GenericContainer"],"Splines::Akima2Dspline::setup::gc":[27,3,1,"_CPPv4N7Splines13Akima2Dspline5setupERK16GenericContainer"],"Splines::Akima2Dspline::type_name":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline9type_nameEv"],"Splines::Akima2Dspline::writeToStream":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline13writeToStreamER12ostream_type"],"Splines::Akima2Dspline::writeToStream::s":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline13writeToStreamER12ostream_type"],"Splines::Akima2Dspline::xMax":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4xMaxEv"],"Splines::Akima2Dspline::xMin":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4xMinEv"],"Splines::Akima2Dspline::xNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline5xNodeE7integer"],"Splines::Akima2Dspline::xNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline5xNodeE7integer"],"Splines::Akima2Dspline::yMax":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4yMaxEv"],"Splines::Akima2Dspline::yMin":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4yMinEv"],"Splines::Akima2Dspline::yNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline5yNodeE7integer"],"Splines::Akima2Dspline::yNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline5yNodeE7integer"],"Splines::Akima2Dspline::zMax":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4zMaxEv"],"Splines::Akima2Dspline::zMin":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline4zMinEv"],"Splines::Akima2Dspline::zNode":[27,2,1,"_CPPv4NK7Splines13Akima2Dspline5zNodeE7integer7integer"],"Splines::Akima2Dspline::zNode::i":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline5zNodeE7integer7integer"],"Splines::Akima2Dspline::zNode::j":[27,3,1,"_CPPv4NK7Splines13Akima2Dspline5zNodeE7integer7integer"],"Splines::Akima2Dspline::~Akima2Dspline":[27,2,1,"_CPPv4N7Splines13Akima2DsplineD0Ev"],"Splines::AkimaSpline":[26,1,1,"_CPPv4N7Splines11AkimaSplineE"],"Splines::AkimaSpline::AkimaSpline":[26,2,1,"_CPPv4N7Splines11AkimaSpline11AkimaSplineERK6string"],"Splines::AkimaSpline::AkimaSpline::name":[26,3,1,"_CPPv4N7Splines11AkimaSpline11AkimaSplineERK6string"],"Splines::AkimaSpline::D":[26,2,1,"_CPPv4NK7Splines11AkimaSpline1DE9real_type"],"Splines::AkimaSpline::D::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline1DE9real_type"],"Splines::AkimaSpline::DD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline2DDE9real_type"],"Splines::AkimaSpline::DD::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline2DDE9real_type"],"Splines::AkimaSpline::DDD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline3DDDE9real_type"],"Splines::AkimaSpline::DDD::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline3DDDE9real_type"],"Splines::AkimaSpline::DDDD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4DDDDE9real_type"],"Splines::AkimaSpline::DDDDD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline5DDDDDE9real_type"],"Splines::AkimaSpline::build":[26,2,1,"_CPPv4N7Splines11AkimaSpline5buildEv"],"Splines::AkimaSpline::build::gc":[26,3,1,"_CPPv4N7Splines11AkimaSpline5buildERK16GenericContainer"],"Splines::AkimaSpline::build::incx":[26,3,1,"_CPPv4N7Splines11AkimaSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::AkimaSpline::build::incy":[26,3,1,"_CPPv4N7Splines11AkimaSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::AkimaSpline::build::incyp":[26,3,1,"_CPPv4N7Splines11AkimaSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::AkimaSpline::build::n":[26,3,1,"_CPPv4N7Splines11AkimaSpline5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::AkimaSpline::build::x":[26,3,1,"_CPPv4N7Splines11AkimaSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::AkimaSpline::build::y":[26,3,1,"_CPPv4N7Splines11AkimaSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::AkimaSpline::build::yp":[26,3,1,"_CPPv4N7Splines11AkimaSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::AkimaSpline::clear":[26,2,1,"_CPPv4N7Splines11AkimaSpline5clearEv"],"Splines::AkimaSpline::coeffs":[26,2,1,"_CPPv4NK7Splines11AkimaSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::AkimaSpline::coeffs::cfs":[26,3,1,"_CPPv4NK7Splines11AkimaSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::AkimaSpline::coeffs::nodes":[26,3,1,"_CPPv4NK7Splines11AkimaSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::AkimaSpline::coeffs::transpose":[26,3,1,"_CPPv4NK7Splines11AkimaSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::AkimaSpline::copySpline":[26,2,1,"_CPPv4N7Splines11AkimaSpline10copySplineERK15CubicSplineBase"],"Splines::AkimaSpline::copySpline::S":[26,3,1,"_CPPv4N7Splines11AkimaSpline10copySplineERK15CubicSplineBase"],"Splines::AkimaSpline::dropBack":[26,2,1,"_CPPv4N7Splines11AkimaSpline8dropBackEv"],"Splines::AkimaSpline::dump":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4dumpER12ostream_type7integerPKc"],"Splines::AkimaSpline::dump::fname":[26,3,1,"_CPPv4NK7Splines11AkimaSpline4dumpEPKc7integerPKc"],"Splines::AkimaSpline::dump::header":[26,3,1,"_CPPv4NK7Splines11AkimaSpline4dumpER12ostream_type7integerPKc"],"Splines::AkimaSpline::dump::nintervals":[26,3,1,"_CPPv4NK7Splines11AkimaSpline4dumpER12ostream_type7integerPKc"],"Splines::AkimaSpline::dump::s":[26,3,1,"_CPPv4NK7Splines11AkimaSpline4dumpER12ostream_type7integerPKc"],"Splines::AkimaSpline::eval":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4evalE9real_type"],"Splines::AkimaSpline::eval::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline4evalE9real_type"],"Splines::AkimaSpline::eval_D":[26,2,1,"_CPPv4NK7Splines11AkimaSpline6eval_DE9real_type"],"Splines::AkimaSpline::eval_D::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline6eval_DE9real_type"],"Splines::AkimaSpline::eval_DD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline7eval_DDE9real_type"],"Splines::AkimaSpline::eval_DD::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline7eval_DDE9real_type"],"Splines::AkimaSpline::eval_DDD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline8eval_DDDE9real_type"],"Splines::AkimaSpline::eval_DDD::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline8eval_DDDE9real_type"],"Splines::AkimaSpline::eval_DDDD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline9eval_DDDDE9real_type"],"Splines::AkimaSpline::eval_DDDD::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline9eval_DDDDE9real_type"],"Splines::AkimaSpline::eval_DDDDD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline10eval_DDDDDE9real_type"],"Splines::AkimaSpline::eval_DDDDD::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline10eval_DDDDDE9real_type"],"Splines::AkimaSpline::id_D":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4id_DE7integer9real_type"],"Splines::AkimaSpline::id_D::ni":[26,3,1,"_CPPv4NK7Splines11AkimaSpline4id_DE7integer9real_type"],"Splines::AkimaSpline::id_D::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline4id_DE7integer9real_type"],"Splines::AkimaSpline::id_DD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline5id_DDE7integer9real_type"],"Splines::AkimaSpline::id_DD::ni":[26,3,1,"_CPPv4NK7Splines11AkimaSpline5id_DDE7integer9real_type"],"Splines::AkimaSpline::id_DD::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline5id_DDE7integer9real_type"],"Splines::AkimaSpline::id_DDD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline6id_DDDE7integer9real_type"],"Splines::AkimaSpline::id_DDD::ni":[26,3,1,"_CPPv4NK7Splines11AkimaSpline6id_DDDE7integer9real_type"],"Splines::AkimaSpline::id_DDD::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline6id_DDDE7integer9real_type"],"Splines::AkimaSpline::id_DDDD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline7id_DDDDE7integer9real_type"],"Splines::AkimaSpline::id_DDDDD":[26,2,1,"_CPPv4NK7Splines11AkimaSpline8id_DDDDDE7integer9real_type"],"Splines::AkimaSpline::id_eval":[26,2,1,"_CPPv4NK7Splines11AkimaSpline7id_evalE7integer9real_type"],"Splines::AkimaSpline::id_eval::ni":[26,3,1,"_CPPv4NK7Splines11AkimaSpline7id_evalE7integer9real_type"],"Splines::AkimaSpline::id_eval::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline7id_evalE7integer9real_type"],"Splines::AkimaSpline::info":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4infoEv"],"Splines::AkimaSpline::info::stream":[26,3,1,"_CPPv4NK7Splines11AkimaSpline4infoER12ostream_type"],"Splines::AkimaSpline::is_bounded":[26,2,1,"_CPPv4NK7Splines11AkimaSpline10is_boundedEv"],"Splines::AkimaSpline::is_closed":[26,2,1,"_CPPv4NK7Splines11AkimaSpline9is_closedEv"],"Splines::AkimaSpline::is_extended_constant":[26,2,1,"_CPPv4NK7Splines11AkimaSpline20is_extended_constantEv"],"Splines::AkimaSpline::make_bounded":[26,2,1,"_CPPv4N7Splines11AkimaSpline12make_boundedEv"],"Splines::AkimaSpline::make_closed":[26,2,1,"_CPPv4N7Splines11AkimaSpline11make_closedEv"],"Splines::AkimaSpline::make_extended_constant":[26,2,1,"_CPPv4N7Splines11AkimaSpline22make_extended_constantEv"],"Splines::AkimaSpline::make_extended_not_constant":[26,2,1,"_CPPv4N7Splines11AkimaSpline26make_extended_not_constantEv"],"Splines::AkimaSpline::make_opened":[26,2,1,"_CPPv4N7Splines11AkimaSpline11make_openedEv"],"Splines::AkimaSpline::make_unbounded":[26,2,1,"_CPPv4N7Splines11AkimaSpline14make_unboundedEv"],"Splines::AkimaSpline::name":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4nameEv"],"Splines::AkimaSpline::numPoints":[26,2,1,"_CPPv4NK7Splines11AkimaSpline9numPointsEv"],"Splines::AkimaSpline::operator()":[26,2,1,"_CPPv4NK7Splines11AkimaSplineclE9real_type"],"Splines::AkimaSpline::operator()::x":[26,3,1,"_CPPv4NK7Splines11AkimaSplineclE9real_type"],"Splines::AkimaSpline::order":[26,2,1,"_CPPv4NK7Splines11AkimaSpline5orderEv"],"Splines::AkimaSpline::pushBack":[26,2,1,"_CPPv4N7Splines11AkimaSpline8pushBackE9real_type9real_type"],"Splines::AkimaSpline::pushBack::x":[26,3,1,"_CPPv4N7Splines11AkimaSpline8pushBackE9real_type9real_type"],"Splines::AkimaSpline::pushBack::y":[26,3,1,"_CPPv4N7Splines11AkimaSpline8pushBackE9real_type9real_type"],"Splines::AkimaSpline::reserve":[26,2,1,"_CPPv4N7Splines11AkimaSpline7reserveE7integer"],"Splines::AkimaSpline::reserve::npts":[26,3,1,"_CPPv4N7Splines11AkimaSpline7reserveE7integer"],"Splines::AkimaSpline::reserve_external":[26,2,1,"_CPPv4N7Splines11AkimaSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::AkimaSpline::reserve_external::n":[26,3,1,"_CPPv4N7Splines11AkimaSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::AkimaSpline::reserve_external::p_dy":[26,3,1,"_CPPv4N7Splines11AkimaSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::AkimaSpline::reserve_external::p_x":[26,3,1,"_CPPv4N7Splines11AkimaSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::AkimaSpline::reserve_external::p_y":[26,3,1,"_CPPv4N7Splines11AkimaSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::AkimaSpline::search":[26,2,1,"_CPPv4NK7Splines11AkimaSpline6searchER9real_type"],"Splines::AkimaSpline::search::x":[26,3,1,"_CPPv4NK7Splines11AkimaSpline6searchER9real_type"],"Splines::AkimaSpline::setOrigin":[26,2,1,"_CPPv4N7Splines11AkimaSpline9setOriginE9real_type"],"Splines::AkimaSpline::setOrigin::x0":[26,3,1,"_CPPv4N7Splines11AkimaSpline9setOriginE9real_type"],"Splines::AkimaSpline::setRange":[26,2,1,"_CPPv4N7Splines11AkimaSpline8setRangeE9real_type9real_type"],"Splines::AkimaSpline::setRange::xmax":[26,3,1,"_CPPv4N7Splines11AkimaSpline8setRangeE9real_type9real_type"],"Splines::AkimaSpline::setRange::xmin":[26,3,1,"_CPPv4N7Splines11AkimaSpline8setRangeE9real_type9real_type"],"Splines::AkimaSpline::setup":[26,2,1,"_CPPv4N7Splines11AkimaSpline5setupERK16GenericContainer"],"Splines::AkimaSpline::setup::gc":[26,3,1,"_CPPv4N7Splines11AkimaSpline5setupERK16GenericContainer"],"Splines::AkimaSpline::type":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4typeEv"],"Splines::AkimaSpline::type_name":[26,2,1,"_CPPv4NK7Splines11AkimaSpline9type_nameEv"],"Splines::AkimaSpline::writeToStream":[26,2,1,"_CPPv4NK7Splines11AkimaSpline13writeToStreamER12ostream_type"],"Splines::AkimaSpline::writeToStream::s":[26,3,1,"_CPPv4NK7Splines11AkimaSpline13writeToStreamER12ostream_type"],"Splines::AkimaSpline::xBegin":[26,2,1,"_CPPv4NK7Splines11AkimaSpline6xBeginEv"],"Splines::AkimaSpline::xEnd":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4xEndEv"],"Splines::AkimaSpline::xMax":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4xMaxEv"],"Splines::AkimaSpline::xMin":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4xMinEv"],"Splines::AkimaSpline::xNode":[26,2,1,"_CPPv4NK7Splines11AkimaSpline5xNodeE7integer"],"Splines::AkimaSpline::xNode::i":[26,3,1,"_CPPv4NK7Splines11AkimaSpline5xNodeE7integer"],"Splines::AkimaSpline::yBegin":[26,2,1,"_CPPv4NK7Splines11AkimaSpline6yBeginEv"],"Splines::AkimaSpline::yEnd":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4yEndEv"],"Splines::AkimaSpline::yMax":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4yMaxEv"],"Splines::AkimaSpline::yMin":[26,2,1,"_CPPv4NK7Splines11AkimaSpline4yMinEv"],"Splines::AkimaSpline::yNode":[26,2,1,"_CPPv4NK7Splines11AkimaSpline5yNodeE7integer"],"Splines::AkimaSpline::yNode::i":[26,3,1,"_CPPv4NK7Splines11AkimaSpline5yNodeE7integer"],"Splines::AkimaSpline::y_min_max":[26,2,1,"_CPPv4NK7Splines11AkimaSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::AkimaSpline::y_min_max::i_max_pos":[26,3,1,"_CPPv4NK7Splines11AkimaSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::AkimaSpline::y_min_max::i_min_pos":[26,3,1,"_CPPv4NK7Splines11AkimaSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::AkimaSpline::y_min_max::x_max_pos":[26,3,1,"_CPPv4NK7Splines11AkimaSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::AkimaSpline::y_min_max::x_min_pos":[26,3,1,"_CPPv4NK7Splines11AkimaSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::AkimaSpline::y_min_max::y_max":[26,3,1,"_CPPv4NK7Splines11AkimaSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::AkimaSpline::y_min_max::y_min":[26,3,1,"_CPPv4NK7Splines11AkimaSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::AkimaSpline::ypNode":[26,2,1,"_CPPv4NK7Splines11AkimaSpline6ypNodeE7integer"],"Splines::AkimaSpline::ypNode::i":[26,3,1,"_CPPv4NK7Splines11AkimaSpline6ypNodeE7integer"],"Splines::AkimaSpline::~AkimaSpline":[26,2,1,"_CPPv4N7Splines11AkimaSplineD0Ev"],"Splines::BESSEL_QUINTIC":[56,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE14BESSEL_QUINTICE"],"Splines::BESSEL_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D11BESSEL_TYPEE"],"Splines::BICUBIC_TYPE":[55,4,1,"_CPPv4N7Splines12SplineType2D12BICUBIC_TYPEE"],"Splines::BILINEAR_TYPE":[55,4,1,"_CPPv4N7Splines12SplineType2D13BILINEAR_TYPEE"],"Splines::BIQUINTIC_TYPE":[55,4,1,"_CPPv4N7Splines12SplineType2D14BIQUINTIC_TYPEE"],"Splines::BesselSpline":[28,1,1,"_CPPv4N7Splines12BesselSplineE"],"Splines::BesselSpline::BesselSpline":[28,2,1,"_CPPv4N7Splines12BesselSpline12BesselSplineERK6string"],"Splines::BesselSpline::BesselSpline::name":[28,3,1,"_CPPv4N7Splines12BesselSpline12BesselSplineERK6string"],"Splines::BesselSpline::D":[28,2,1,"_CPPv4NK7Splines12BesselSpline1DE9real_type"],"Splines::BesselSpline::D::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline1DE9real_type"],"Splines::BesselSpline::DD":[28,2,1,"_CPPv4NK7Splines12BesselSpline2DDE9real_type"],"Splines::BesselSpline::DD::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline2DDE9real_type"],"Splines::BesselSpline::DDD":[28,2,1,"_CPPv4NK7Splines12BesselSpline3DDDE9real_type"],"Splines::BesselSpline::DDD::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline3DDDE9real_type"],"Splines::BesselSpline::DDDD":[28,2,1,"_CPPv4NK7Splines12BesselSpline4DDDDE9real_type"],"Splines::BesselSpline::DDDDD":[28,2,1,"_CPPv4NK7Splines12BesselSpline5DDDDDE9real_type"],"Splines::BesselSpline::build":[28,2,1,"_CPPv4N7Splines12BesselSpline5buildEv"],"Splines::BesselSpline::build::gc":[28,3,1,"_CPPv4N7Splines12BesselSpline5buildERK16GenericContainer"],"Splines::BesselSpline::build::incx":[28,3,1,"_CPPv4N7Splines12BesselSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::BesselSpline::build::incy":[28,3,1,"_CPPv4N7Splines12BesselSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::BesselSpline::build::incyp":[28,3,1,"_CPPv4N7Splines12BesselSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::BesselSpline::build::n":[28,3,1,"_CPPv4N7Splines12BesselSpline5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::BesselSpline::build::x":[28,3,1,"_CPPv4N7Splines12BesselSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::BesselSpline::build::y":[28,3,1,"_CPPv4N7Splines12BesselSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::BesselSpline::build::yp":[28,3,1,"_CPPv4N7Splines12BesselSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::BesselSpline::clear":[28,2,1,"_CPPv4N7Splines12BesselSpline5clearEv"],"Splines::BesselSpline::coeffs":[28,2,1,"_CPPv4NK7Splines12BesselSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::BesselSpline::coeffs::cfs":[28,3,1,"_CPPv4NK7Splines12BesselSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::BesselSpline::coeffs::nodes":[28,3,1,"_CPPv4NK7Splines12BesselSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::BesselSpline::coeffs::transpose":[28,3,1,"_CPPv4NK7Splines12BesselSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::BesselSpline::copySpline":[28,2,1,"_CPPv4N7Splines12BesselSpline10copySplineERK15CubicSplineBase"],"Splines::BesselSpline::copySpline::S":[28,3,1,"_CPPv4N7Splines12BesselSpline10copySplineERK15CubicSplineBase"],"Splines::BesselSpline::dropBack":[28,2,1,"_CPPv4N7Splines12BesselSpline8dropBackEv"],"Splines::BesselSpline::dump":[28,2,1,"_CPPv4NK7Splines12BesselSpline4dumpER12ostream_type7integerPKc"],"Splines::BesselSpline::dump::fname":[28,3,1,"_CPPv4NK7Splines12BesselSpline4dumpEPKc7integerPKc"],"Splines::BesselSpline::dump::header":[28,3,1,"_CPPv4NK7Splines12BesselSpline4dumpER12ostream_type7integerPKc"],"Splines::BesselSpline::dump::nintervals":[28,3,1,"_CPPv4NK7Splines12BesselSpline4dumpER12ostream_type7integerPKc"],"Splines::BesselSpline::dump::s":[28,3,1,"_CPPv4NK7Splines12BesselSpline4dumpER12ostream_type7integerPKc"],"Splines::BesselSpline::eval":[28,2,1,"_CPPv4NK7Splines12BesselSpline4evalE9real_type"],"Splines::BesselSpline::eval::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline4evalE9real_type"],"Splines::BesselSpline::eval_D":[28,2,1,"_CPPv4NK7Splines12BesselSpline6eval_DE9real_type"],"Splines::BesselSpline::eval_D::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline6eval_DE9real_type"],"Splines::BesselSpline::eval_DD":[28,2,1,"_CPPv4NK7Splines12BesselSpline7eval_DDE9real_type"],"Splines::BesselSpline::eval_DD::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline7eval_DDE9real_type"],"Splines::BesselSpline::eval_DDD":[28,2,1,"_CPPv4NK7Splines12BesselSpline8eval_DDDE9real_type"],"Splines::BesselSpline::eval_DDD::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline8eval_DDDE9real_type"],"Splines::BesselSpline::eval_DDDD":[28,2,1,"_CPPv4NK7Splines12BesselSpline9eval_DDDDE9real_type"],"Splines::BesselSpline::eval_DDDD::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline9eval_DDDDE9real_type"],"Splines::BesselSpline::eval_DDDDD":[28,2,1,"_CPPv4NK7Splines12BesselSpline10eval_DDDDDE9real_type"],"Splines::BesselSpline::eval_DDDDD::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline10eval_DDDDDE9real_type"],"Splines::BesselSpline::id_D":[28,2,1,"_CPPv4NK7Splines12BesselSpline4id_DE7integer9real_type"],"Splines::BesselSpline::id_D::ni":[28,3,1,"_CPPv4NK7Splines12BesselSpline4id_DE7integer9real_type"],"Splines::BesselSpline::id_D::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline4id_DE7integer9real_type"],"Splines::BesselSpline::id_DD":[28,2,1,"_CPPv4NK7Splines12BesselSpline5id_DDE7integer9real_type"],"Splines::BesselSpline::id_DD::ni":[28,3,1,"_CPPv4NK7Splines12BesselSpline5id_DDE7integer9real_type"],"Splines::BesselSpline::id_DD::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline5id_DDE7integer9real_type"],"Splines::BesselSpline::id_DDD":[28,2,1,"_CPPv4NK7Splines12BesselSpline6id_DDDE7integer9real_type"],"Splines::BesselSpline::id_DDD::ni":[28,3,1,"_CPPv4NK7Splines12BesselSpline6id_DDDE7integer9real_type"],"Splines::BesselSpline::id_DDD::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline6id_DDDE7integer9real_type"],"Splines::BesselSpline::id_DDDD":[28,2,1,"_CPPv4NK7Splines12BesselSpline7id_DDDDE7integer9real_type"],"Splines::BesselSpline::id_DDDDD":[28,2,1,"_CPPv4NK7Splines12BesselSpline8id_DDDDDE7integer9real_type"],"Splines::BesselSpline::id_eval":[28,2,1,"_CPPv4NK7Splines12BesselSpline7id_evalE7integer9real_type"],"Splines::BesselSpline::id_eval::ni":[28,3,1,"_CPPv4NK7Splines12BesselSpline7id_evalE7integer9real_type"],"Splines::BesselSpline::id_eval::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline7id_evalE7integer9real_type"],"Splines::BesselSpline::info":[28,2,1,"_CPPv4NK7Splines12BesselSpline4infoEv"],"Splines::BesselSpline::info::stream":[28,3,1,"_CPPv4NK7Splines12BesselSpline4infoER12ostream_type"],"Splines::BesselSpline::is_bounded":[28,2,1,"_CPPv4NK7Splines12BesselSpline10is_boundedEv"],"Splines::BesselSpline::is_closed":[28,2,1,"_CPPv4NK7Splines12BesselSpline9is_closedEv"],"Splines::BesselSpline::is_extended_constant":[28,2,1,"_CPPv4NK7Splines12BesselSpline20is_extended_constantEv"],"Splines::BesselSpline::make_bounded":[28,2,1,"_CPPv4N7Splines12BesselSpline12make_boundedEv"],"Splines::BesselSpline::make_closed":[28,2,1,"_CPPv4N7Splines12BesselSpline11make_closedEv"],"Splines::BesselSpline::make_extended_constant":[28,2,1,"_CPPv4N7Splines12BesselSpline22make_extended_constantEv"],"Splines::BesselSpline::make_extended_not_constant":[28,2,1,"_CPPv4N7Splines12BesselSpline26make_extended_not_constantEv"],"Splines::BesselSpline::make_opened":[28,2,1,"_CPPv4N7Splines12BesselSpline11make_openedEv"],"Splines::BesselSpline::make_unbounded":[28,2,1,"_CPPv4N7Splines12BesselSpline14make_unboundedEv"],"Splines::BesselSpline::name":[28,2,1,"_CPPv4NK7Splines12BesselSpline4nameEv"],"Splines::BesselSpline::numPoints":[28,2,1,"_CPPv4NK7Splines12BesselSpline9numPointsEv"],"Splines::BesselSpline::operator()":[28,2,1,"_CPPv4NK7Splines12BesselSplineclE9real_type"],"Splines::BesselSpline::operator()::x":[28,3,1,"_CPPv4NK7Splines12BesselSplineclE9real_type"],"Splines::BesselSpline::order":[28,2,1,"_CPPv4NK7Splines12BesselSpline5orderEv"],"Splines::BesselSpline::pushBack":[28,2,1,"_CPPv4N7Splines12BesselSpline8pushBackE9real_type9real_type"],"Splines::BesselSpline::pushBack::x":[28,3,1,"_CPPv4N7Splines12BesselSpline8pushBackE9real_type9real_type"],"Splines::BesselSpline::pushBack::y":[28,3,1,"_CPPv4N7Splines12BesselSpline8pushBackE9real_type9real_type"],"Splines::BesselSpline::reserve":[28,2,1,"_CPPv4N7Splines12BesselSpline7reserveE7integer"],"Splines::BesselSpline::reserve::npts":[28,3,1,"_CPPv4N7Splines12BesselSpline7reserveE7integer"],"Splines::BesselSpline::reserve_external":[28,2,1,"_CPPv4N7Splines12BesselSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::BesselSpline::reserve_external::n":[28,3,1,"_CPPv4N7Splines12BesselSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::BesselSpline::reserve_external::p_dy":[28,3,1,"_CPPv4N7Splines12BesselSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::BesselSpline::reserve_external::p_x":[28,3,1,"_CPPv4N7Splines12BesselSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::BesselSpline::reserve_external::p_y":[28,3,1,"_CPPv4N7Splines12BesselSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::BesselSpline::search":[28,2,1,"_CPPv4NK7Splines12BesselSpline6searchER9real_type"],"Splines::BesselSpline::search::x":[28,3,1,"_CPPv4NK7Splines12BesselSpline6searchER9real_type"],"Splines::BesselSpline::setOrigin":[28,2,1,"_CPPv4N7Splines12BesselSpline9setOriginE9real_type"],"Splines::BesselSpline::setOrigin::x0":[28,3,1,"_CPPv4N7Splines12BesselSpline9setOriginE9real_type"],"Splines::BesselSpline::setRange":[28,2,1,"_CPPv4N7Splines12BesselSpline8setRangeE9real_type9real_type"],"Splines::BesselSpline::setRange::xmax":[28,3,1,"_CPPv4N7Splines12BesselSpline8setRangeE9real_type9real_type"],"Splines::BesselSpline::setRange::xmin":[28,3,1,"_CPPv4N7Splines12BesselSpline8setRangeE9real_type9real_type"],"Splines::BesselSpline::setup":[28,2,1,"_CPPv4N7Splines12BesselSpline5setupERK16GenericContainer"],"Splines::BesselSpline::setup::gc":[28,3,1,"_CPPv4N7Splines12BesselSpline5setupERK16GenericContainer"],"Splines::BesselSpline::type":[28,2,1,"_CPPv4NK7Splines12BesselSpline4typeEv"],"Splines::BesselSpline::type_name":[28,2,1,"_CPPv4NK7Splines12BesselSpline9type_nameEv"],"Splines::BesselSpline::writeToStream":[28,2,1,"_CPPv4NK7Splines12BesselSpline13writeToStreamER12ostream_type"],"Splines::BesselSpline::writeToStream::s":[28,3,1,"_CPPv4NK7Splines12BesselSpline13writeToStreamER12ostream_type"],"Splines::BesselSpline::xBegin":[28,2,1,"_CPPv4NK7Splines12BesselSpline6xBeginEv"],"Splines::BesselSpline::xEnd":[28,2,1,"_CPPv4NK7Splines12BesselSpline4xEndEv"],"Splines::BesselSpline::xMax":[28,2,1,"_CPPv4NK7Splines12BesselSpline4xMaxEv"],"Splines::BesselSpline::xMin":[28,2,1,"_CPPv4NK7Splines12BesselSpline4xMinEv"],"Splines::BesselSpline::xNode":[28,2,1,"_CPPv4NK7Splines12BesselSpline5xNodeE7integer"],"Splines::BesselSpline::xNode::i":[28,3,1,"_CPPv4NK7Splines12BesselSpline5xNodeE7integer"],"Splines::BesselSpline::yBegin":[28,2,1,"_CPPv4NK7Splines12BesselSpline6yBeginEv"],"Splines::BesselSpline::yEnd":[28,2,1,"_CPPv4NK7Splines12BesselSpline4yEndEv"],"Splines::BesselSpline::yMax":[28,2,1,"_CPPv4NK7Splines12BesselSpline4yMaxEv"],"Splines::BesselSpline::yMin":[28,2,1,"_CPPv4NK7Splines12BesselSpline4yMinEv"],"Splines::BesselSpline::yNode":[28,2,1,"_CPPv4NK7Splines12BesselSpline5yNodeE7integer"],"Splines::BesselSpline::yNode::i":[28,3,1,"_CPPv4NK7Splines12BesselSpline5yNodeE7integer"],"Splines::BesselSpline::y_min_max":[28,2,1,"_CPPv4NK7Splines12BesselSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::BesselSpline::y_min_max::i_max_pos":[28,3,1,"_CPPv4NK7Splines12BesselSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::BesselSpline::y_min_max::i_min_pos":[28,3,1,"_CPPv4NK7Splines12BesselSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::BesselSpline::y_min_max::x_max_pos":[28,3,1,"_CPPv4NK7Splines12BesselSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::BesselSpline::y_min_max::x_min_pos":[28,3,1,"_CPPv4NK7Splines12BesselSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::BesselSpline::y_min_max::y_max":[28,3,1,"_CPPv4NK7Splines12BesselSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::BesselSpline::y_min_max::y_min":[28,3,1,"_CPPv4NK7Splines12BesselSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::BesselSpline::ypNode":[28,2,1,"_CPPv4NK7Splines12BesselSpline6ypNodeE7integer"],"Splines::BesselSpline::ypNode::i":[28,3,1,"_CPPv4NK7Splines12BesselSpline6ypNodeE7integer"],"Splines::BesselSpline::~BesselSpline":[28,2,1,"_CPPv4N7Splines12BesselSplineD0Ev"],"Splines::BiCubicSpline":[30,1,1,"_CPPv4N7Splines13BiCubicSplineE"],"Splines::BiCubicSpline::BiCubicSpline":[30,2,1,"_CPPv4N7Splines13BiCubicSpline13BiCubicSplineERK6string"],"Splines::BiCubicSpline::BiCubicSpline::name":[30,3,1,"_CPPv4N7Splines13BiCubicSpline13BiCubicSplineERK6string"],"Splines::BiCubicSpline::D":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSpline::D::d":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSpline::D::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSpline::D::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSpline::DD":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSpline::DD::dd":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSpline::DD::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSpline::DD::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSpline::Dx":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline2DxE9real_type9real_type"],"Splines::BiCubicSpline::Dx::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DxE9real_type9real_type"],"Splines::BiCubicSpline::Dx::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DxE9real_type9real_type"],"Splines::BiCubicSpline::DxNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline6DxNodeE7integer7integer"],"Splines::BiCubicSpline::DxNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline6DxNodeE7integer7integer"],"Splines::BiCubicSpline::DxNode::j":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline6DxNodeE7integer7integer"],"Splines::BiCubicSpline::Dxx":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline3DxxE9real_type9real_type"],"Splines::BiCubicSpline::Dxx::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DxxE9real_type9real_type"],"Splines::BiCubicSpline::Dxx::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DxxE9real_type9real_type"],"Splines::BiCubicSpline::Dxy":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline3DxyE9real_type9real_type"],"Splines::BiCubicSpline::Dxy::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DxyE9real_type9real_type"],"Splines::BiCubicSpline::Dxy::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DxyE9real_type9real_type"],"Splines::BiCubicSpline::DxyNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline7DxyNodeE7integer7integer"],"Splines::BiCubicSpline::DxyNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline7DxyNodeE7integer7integer"],"Splines::BiCubicSpline::DxyNode::j":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline7DxyNodeE7integer7integer"],"Splines::BiCubicSpline::Dy":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline2DyE9real_type9real_type"],"Splines::BiCubicSpline::Dy::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DyE9real_type9real_type"],"Splines::BiCubicSpline::Dy::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline2DyE9real_type9real_type"],"Splines::BiCubicSpline::DyNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline6DyNodeE7integer7integer"],"Splines::BiCubicSpline::DyNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline6DyNodeE7integer7integer"],"Splines::BiCubicSpline::DyNode::j":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline6DyNodeE7integer7integer"],"Splines::BiCubicSpline::Dyy":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline3DyyE9real_type9real_type"],"Splines::BiCubicSpline::Dyy::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DyyE9real_type9real_type"],"Splines::BiCubicSpline::Dyy::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline3DyyE9real_type9real_type"],"Splines::BiCubicSpline::build":[30,2,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::build::fortran_storage":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::build::gc":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK16GenericContainer"],"Splines::BiCubicSpline::build::incx":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSpline::build::incy":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSpline::build::ldZ":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSpline::build::nx":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiCubicSpline::build::ny":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiCubicSpline::build::transposed":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::build::x":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::build::y":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::build::z":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSpline::clear":[30,2,1,"_CPPv4N7Splines13BiCubicSpline5clearEv"],"Splines::BiCubicSpline::dump_data":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline9dump_dataER12ostream_type"],"Splines::BiCubicSpline::dump_data::s":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline9dump_dataER12ostream_type"],"Splines::BiCubicSpline::eval":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4evalE9real_type9real_type"],"Splines::BiCubicSpline::eval::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline4evalE9real_type9real_type"],"Splines::BiCubicSpline::eval::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline4evalE9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_1":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_1::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_1::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_2":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_2::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_1_2::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline8eval_D_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2_2":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2_2::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSpline::eval_D_2_2::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSpline::info":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4infoEv"],"Splines::BiCubicSpline::info::stream":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline4infoER12ostream_type"],"Splines::BiCubicSpline::is_x_bounded":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline12is_x_boundedEv"],"Splines::BiCubicSpline::is_x_closed":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline11is_x_closedEv"],"Splines::BiCubicSpline::is_y_bounded":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline12is_y_boundedEv"],"Splines::BiCubicSpline::is_y_closed":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline11is_y_closedEv"],"Splines::BiCubicSpline::make_x_bounded":[30,2,1,"_CPPv4N7Splines13BiCubicSpline14make_x_boundedEv"],"Splines::BiCubicSpline::make_x_closed":[30,2,1,"_CPPv4N7Splines13BiCubicSpline13make_x_closedEv"],"Splines::BiCubicSpline::make_x_opened":[30,2,1,"_CPPv4N7Splines13BiCubicSpline13make_x_openedEv"],"Splines::BiCubicSpline::make_x_unbounded":[30,2,1,"_CPPv4N7Splines13BiCubicSpline16make_x_unboundedEv"],"Splines::BiCubicSpline::make_y_bounded":[30,2,1,"_CPPv4N7Splines13BiCubicSpline14make_y_boundedEv"],"Splines::BiCubicSpline::make_y_closed":[30,2,1,"_CPPv4N7Splines13BiCubicSpline13make_y_closedEv"],"Splines::BiCubicSpline::make_y_opened":[30,2,1,"_CPPv4N7Splines13BiCubicSpline13make_y_openedEv"],"Splines::BiCubicSpline::make_y_unbounded":[30,2,1,"_CPPv4N7Splines13BiCubicSpline16make_y_unboundedEv"],"Splines::BiCubicSpline::name":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4nameEv"],"Splines::BiCubicSpline::numPointX":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline9numPointXEv"],"Splines::BiCubicSpline::numPointY":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline9numPointYEv"],"Splines::BiCubicSpline::operator()":[30,2,1,"_CPPv4NK7Splines13BiCubicSplineclE9real_type9real_type"],"Splines::BiCubicSpline::operator()::x":[30,3,1,"_CPPv4NK7Splines13BiCubicSplineclE9real_type9real_type"],"Splines::BiCubicSpline::operator()::y":[30,3,1,"_CPPv4NK7Splines13BiCubicSplineclE9real_type9real_type"],"Splines::BiCubicSpline::setup":[30,2,1,"_CPPv4N7Splines13BiCubicSpline5setupERK16GenericContainer"],"Splines::BiCubicSpline::setup::gc":[30,3,1,"_CPPv4N7Splines13BiCubicSpline5setupERK16GenericContainer"],"Splines::BiCubicSpline::type_name":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline9type_nameEv"],"Splines::BiCubicSpline::writeToStream":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline13writeToStreamER12ostream_type"],"Splines::BiCubicSpline::writeToStream::s":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline13writeToStreamER12ostream_type"],"Splines::BiCubicSpline::xMax":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4xMaxEv"],"Splines::BiCubicSpline::xMin":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4xMinEv"],"Splines::BiCubicSpline::xNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline5xNodeE7integer"],"Splines::BiCubicSpline::xNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline5xNodeE7integer"],"Splines::BiCubicSpline::yMax":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4yMaxEv"],"Splines::BiCubicSpline::yMin":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4yMinEv"],"Splines::BiCubicSpline::yNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline5yNodeE7integer"],"Splines::BiCubicSpline::yNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline5yNodeE7integer"],"Splines::BiCubicSpline::zMax":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4zMaxEv"],"Splines::BiCubicSpline::zMin":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline4zMinEv"],"Splines::BiCubicSpline::zNode":[30,2,1,"_CPPv4NK7Splines13BiCubicSpline5zNodeE7integer7integer"],"Splines::BiCubicSpline::zNode::i":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline5zNodeE7integer7integer"],"Splines::BiCubicSpline::zNode::j":[30,3,1,"_CPPv4NK7Splines13BiCubicSpline5zNodeE7integer7integer"],"Splines::BiCubicSpline::~BiCubicSpline":[30,2,1,"_CPPv4N7Splines13BiCubicSplineD0Ev"],"Splines::BiCubicSplineBase":[29,1,1,"_CPPv4N7Splines17BiCubicSplineBaseE"],"Splines::BiCubicSplineBase::BiCubicSplineBase":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase17BiCubicSplineBaseERK6string"],"Splines::BiCubicSplineBase::BiCubicSplineBase::name":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase17BiCubicSplineBaseERK6string"],"Splines::BiCubicSplineBase::D":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSplineBase::D::d":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSplineBase::D::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSplineBase::D::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiCubicSplineBase::DD":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSplineBase::DD::dd":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSplineBase::DD::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSplineBase::DD::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiCubicSplineBase::Dx":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase2DxE9real_type9real_type"],"Splines::BiCubicSplineBase::Dx::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DxE9real_type9real_type"],"Splines::BiCubicSplineBase::Dx::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DxE9real_type9real_type"],"Splines::BiCubicSplineBase::DxNode":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase6DxNodeE7integer7integer"],"Splines::BiCubicSplineBase::DxNode::i":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase6DxNodeE7integer7integer"],"Splines::BiCubicSplineBase::DxNode::j":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase6DxNodeE7integer7integer"],"Splines::BiCubicSplineBase::Dxx":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxxE9real_type9real_type"],"Splines::BiCubicSplineBase::Dxx::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxxE9real_type9real_type"],"Splines::BiCubicSplineBase::Dxx::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxxE9real_type9real_type"],"Splines::BiCubicSplineBase::Dxy":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dxy::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dxy::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DxyE9real_type9real_type"],"Splines::BiCubicSplineBase::DxyNode":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase7DxyNodeE7integer7integer"],"Splines::BiCubicSplineBase::DxyNode::i":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase7DxyNodeE7integer7integer"],"Splines::BiCubicSplineBase::DxyNode::j":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase7DxyNodeE7integer7integer"],"Splines::BiCubicSplineBase::Dy":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase2DyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dy::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dy::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase2DyE9real_type9real_type"],"Splines::BiCubicSplineBase::DyNode":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase6DyNodeE7integer7integer"],"Splines::BiCubicSplineBase::DyNode::i":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase6DyNodeE7integer7integer"],"Splines::BiCubicSplineBase::DyNode::j":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase6DyNodeE7integer7integer"],"Splines::BiCubicSplineBase::Dyy":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase3DyyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dyy::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DyyE9real_type9real_type"],"Splines::BiCubicSplineBase::Dyy::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase3DyyE9real_type9real_type"],"Splines::BiCubicSplineBase::build":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::build::fortran_storage":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::build::gc":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK16GenericContainer"],"Splines::BiCubicSplineBase::build::incx":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSplineBase::build::incy":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSplineBase::build::ldZ":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiCubicSplineBase::build::nx":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiCubicSplineBase::build::ny":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiCubicSplineBase::build::transposed":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::build::x":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::build::y":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::build::z":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiCubicSplineBase::clear":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase5clearEv"],"Splines::BiCubicSplineBase::dump_data":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase9dump_dataER12ostream_type"],"Splines::BiCubicSplineBase::dump_data::s":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase9dump_dataER12ostream_type"],"Splines::BiCubicSplineBase::eval":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4evalE9real_type9real_type"],"Splines::BiCubicSplineBase::eval::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase4evalE9real_type9real_type"],"Splines::BiCubicSplineBase::eval::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase4evalE9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_1":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_1::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_1::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_2":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_2::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_1_2::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2_2":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2_2::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSplineBase::eval_D_2_2::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiCubicSplineBase::info":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4infoEv"],"Splines::BiCubicSplineBase::info::stream":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase4infoER12ostream_type"],"Splines::BiCubicSplineBase::is_x_bounded":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase12is_x_boundedEv"],"Splines::BiCubicSplineBase::is_x_closed":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase11is_x_closedEv"],"Splines::BiCubicSplineBase::is_y_bounded":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase12is_y_boundedEv"],"Splines::BiCubicSplineBase::is_y_closed":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase11is_y_closedEv"],"Splines::BiCubicSplineBase::make_x_bounded":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase14make_x_boundedEv"],"Splines::BiCubicSplineBase::make_x_closed":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase13make_x_closedEv"],"Splines::BiCubicSplineBase::make_x_opened":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase13make_x_openedEv"],"Splines::BiCubicSplineBase::make_x_unbounded":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase16make_x_unboundedEv"],"Splines::BiCubicSplineBase::make_y_bounded":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase14make_y_boundedEv"],"Splines::BiCubicSplineBase::make_y_closed":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase13make_y_closedEv"],"Splines::BiCubicSplineBase::make_y_opened":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase13make_y_openedEv"],"Splines::BiCubicSplineBase::make_y_unbounded":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase16make_y_unboundedEv"],"Splines::BiCubicSplineBase::name":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4nameEv"],"Splines::BiCubicSplineBase::numPointX":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase9numPointXEv"],"Splines::BiCubicSplineBase::numPointY":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase9numPointYEv"],"Splines::BiCubicSplineBase::operator()":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBaseclE9real_type9real_type"],"Splines::BiCubicSplineBase::operator()::x":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBaseclE9real_type9real_type"],"Splines::BiCubicSplineBase::operator()::y":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBaseclE9real_type9real_type"],"Splines::BiCubicSplineBase::setup":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBase5setupERK16GenericContainer"],"Splines::BiCubicSplineBase::setup::gc":[29,3,1,"_CPPv4N7Splines17BiCubicSplineBase5setupERK16GenericContainer"],"Splines::BiCubicSplineBase::type_name":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase9type_nameEv"],"Splines::BiCubicSplineBase::writeToStream":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase13writeToStreamER12ostream_type"],"Splines::BiCubicSplineBase::writeToStream::s":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase13writeToStreamER12ostream_type"],"Splines::BiCubicSplineBase::xMax":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4xMaxEv"],"Splines::BiCubicSplineBase::xMin":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4xMinEv"],"Splines::BiCubicSplineBase::xNode":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase5xNodeE7integer"],"Splines::BiCubicSplineBase::xNode::i":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase5xNodeE7integer"],"Splines::BiCubicSplineBase::yMax":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4yMaxEv"],"Splines::BiCubicSplineBase::yMin":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4yMinEv"],"Splines::BiCubicSplineBase::yNode":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase5yNodeE7integer"],"Splines::BiCubicSplineBase::yNode::i":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase5yNodeE7integer"],"Splines::BiCubicSplineBase::zMax":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4zMaxEv"],"Splines::BiCubicSplineBase::zMin":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase4zMinEv"],"Splines::BiCubicSplineBase::zNode":[29,2,1,"_CPPv4NK7Splines17BiCubicSplineBase5zNodeE7integer7integer"],"Splines::BiCubicSplineBase::zNode::i":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase5zNodeE7integer7integer"],"Splines::BiCubicSplineBase::zNode::j":[29,3,1,"_CPPv4NK7Splines17BiCubicSplineBase5zNodeE7integer7integer"],"Splines::BiCubicSplineBase::~BiCubicSplineBase":[29,2,1,"_CPPv4N7Splines17BiCubicSplineBaseD0Ev"],"Splines::BiQuinticSpline":[33,1,1,"_CPPv4N7Splines15BiQuinticSplineE"],"Splines::BiQuinticSpline::BiQuinticSpline":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline15BiQuinticSplineERK6string"],"Splines::BiQuinticSpline::BiQuinticSpline::name":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline15BiQuinticSplineERK6string"],"Splines::BiQuinticSpline::D":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSpline::D::d":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSpline::D::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSpline::D::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSpline::DD":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSpline::DD::dd":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSpline::DD::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSpline::DD::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSpline::Dx":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline2DxE9real_type9real_type"],"Splines::BiQuinticSpline::Dx::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DxE9real_type9real_type"],"Splines::BiQuinticSpline::Dx::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DxE9real_type9real_type"],"Splines::BiQuinticSpline::DxNode":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline6DxNodeE7integer7integer"],"Splines::BiQuinticSpline::DxNode::i":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline6DxNodeE7integer7integer"],"Splines::BiQuinticSpline::DxNode::j":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline6DxNodeE7integer7integer"],"Splines::BiQuinticSpline::Dxx":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline3DxxE9real_type9real_type"],"Splines::BiQuinticSpline::Dxx::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DxxE9real_type9real_type"],"Splines::BiQuinticSpline::Dxx::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DxxE9real_type9real_type"],"Splines::BiQuinticSpline::DxxNode":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline7DxxNodeE7integer7integer"],"Splines::BiQuinticSpline::DxxNode::i":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DxxNodeE7integer7integer"],"Splines::BiQuinticSpline::DxxNode::j":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DxxNodeE7integer7integer"],"Splines::BiQuinticSpline::Dxy":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline3DxyE9real_type9real_type"],"Splines::BiQuinticSpline::Dxy::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DxyE9real_type9real_type"],"Splines::BiQuinticSpline::Dxy::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DxyE9real_type9real_type"],"Splines::BiQuinticSpline::DxyNode":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline7DxyNodeE7integer7integer"],"Splines::BiQuinticSpline::DxyNode::i":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DxyNodeE7integer7integer"],"Splines::BiQuinticSpline::DxyNode::j":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DxyNodeE7integer7integer"],"Splines::BiQuinticSpline::Dy":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline2DyE9real_type9real_type"],"Splines::BiQuinticSpline::Dy::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DyE9real_type9real_type"],"Splines::BiQuinticSpline::Dy::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline2DyE9real_type9real_type"],"Splines::BiQuinticSpline::DyNode":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline6DyNodeE7integer7integer"],"Splines::BiQuinticSpline::DyNode::i":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline6DyNodeE7integer7integer"],"Splines::BiQuinticSpline::DyNode::j":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline6DyNodeE7integer7integer"],"Splines::BiQuinticSpline::Dyy":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline3DyyE9real_type9real_type"],"Splines::BiQuinticSpline::Dyy::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DyyE9real_type9real_type"],"Splines::BiQuinticSpline::Dyy::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline3DyyE9real_type9real_type"],"Splines::BiQuinticSpline::DyyNode":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline7DyyNodeE7integer7integer"],"Splines::BiQuinticSpline::DyyNode::i":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DyyNodeE7integer7integer"],"Splines::BiQuinticSpline::DyyNode::j":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline7DyyNodeE7integer7integer"],"Splines::BiQuinticSpline::build":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::build::fortran_storage":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::build::gc":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK16GenericContainer"],"Splines::BiQuinticSpline::build::incx":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSpline::build::incy":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSpline::build::ldZ":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSpline::build::nx":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiQuinticSpline::build::ny":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiQuinticSpline::build::transposed":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::build::x":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::build::y":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::build::z":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSpline::clear":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline5clearEv"],"Splines::BiQuinticSpline::dump_data":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline9dump_dataER12ostream_type"],"Splines::BiQuinticSpline::dump_data::s":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline9dump_dataER12ostream_type"],"Splines::BiQuinticSpline::eval":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline4evalE9real_type9real_type"],"Splines::BiQuinticSpline::eval::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline4evalE9real_type9real_type"],"Splines::BiQuinticSpline::eval::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline4evalE9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_1":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_1::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_1::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_2":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_2::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_1_2::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2_2":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2_2::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSpline::eval_D_2_2::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSpline::info":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline4infoEv"],"Splines::BiQuinticSpline::info::stream":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline4infoER12ostream_type"],"Splines::BiQuinticSpline::is_x_bounded":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline12is_x_boundedEv"],"Splines::BiQuinticSpline::is_x_closed":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline11is_x_closedEv"],"Splines::BiQuinticSpline::is_y_bounded":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline12is_y_boundedEv"],"Splines::BiQuinticSpline::is_y_closed":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline11is_y_closedEv"],"Splines::BiQuinticSpline::make_x_bounded":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline14make_x_boundedEv"],"Splines::BiQuinticSpline::make_x_closed":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline13make_x_closedEv"],"Splines::BiQuinticSpline::make_x_opened":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline13make_x_openedEv"],"Splines::BiQuinticSpline::make_x_unbounded":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline16make_x_unboundedEv"],"Splines::BiQuinticSpline::make_y_bounded":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline14make_y_boundedEv"],"Splines::BiQuinticSpline::make_y_closed":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline13make_y_closedEv"],"Splines::BiQuinticSpline::make_y_opened":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline13make_y_openedEv"],"Splines::BiQuinticSpline::make_y_unbounded":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline16make_y_unboundedEv"],"Splines::BiQuinticSpline::name":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline4nameEv"],"Splines::BiQuinticSpline::numPointX":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline9numPointXEv"],"Splines::BiQuinticSpline::numPointY":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline9numPointYEv"],"Splines::BiQuinticSpline::operator()":[33,2,1,"_CPPv4NK7Splines15BiQuinticSplineclE9real_type9real_type"],"Splines::BiQuinticSpline::operator()::x":[33,3,1,"_CPPv4NK7Splines15BiQuinticSplineclE9real_type9real_type"],"Splines::BiQuinticSpline::operator()::y":[33,3,1,"_CPPv4NK7Splines15BiQuinticSplineclE9real_type9real_type"],"Splines::BiQuinticSpline::setup":[33,2,1,"_CPPv4N7Splines15BiQuinticSpline5setupERK16GenericContainer"],"Splines::BiQuinticSpline::setup::gc":[33,3,1,"_CPPv4N7Splines15BiQuinticSpline5setupERK16GenericContainer"],"Splines::BiQuinticSpline::type_name":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline9type_nameEv"],"Splines::BiQuinticSpline::writeToStream":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline13writeToStreamER12ostream_type"],"Splines::BiQuinticSpline::writeToStream::s":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline13writeToStreamER12ostream_type"],"Splines::BiQuinticSpline::xMax":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline4xMaxEv"],"Splines::BiQuinticSpline::xMin":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline4xMinEv"],"Splines::BiQuinticSpline::xNode":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline5xNodeE7integer"],"Splines::BiQuinticSpline::xNode::i":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline5xNodeE7integer"],"Splines::BiQuinticSpline::yMax":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline4yMaxEv"],"Splines::BiQuinticSpline::yMin":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline4yMinEv"],"Splines::BiQuinticSpline::yNode":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline5yNodeE7integer"],"Splines::BiQuinticSpline::yNode::i":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline5yNodeE7integer"],"Splines::BiQuinticSpline::zMax":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline4zMaxEv"],"Splines::BiQuinticSpline::zMin":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline4zMinEv"],"Splines::BiQuinticSpline::zNode":[33,2,1,"_CPPv4NK7Splines15BiQuinticSpline5zNodeE7integer7integer"],"Splines::BiQuinticSpline::zNode::i":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline5zNodeE7integer7integer"],"Splines::BiQuinticSpline::zNode::j":[33,3,1,"_CPPv4NK7Splines15BiQuinticSpline5zNodeE7integer7integer"],"Splines::BiQuinticSpline::~BiQuinticSpline":[33,2,1,"_CPPv4N7Splines15BiQuinticSplineD0Ev"],"Splines::BiQuinticSplineBase":[32,1,1,"_CPPv4N7Splines19BiQuinticSplineBaseE"],"Splines::BiQuinticSplineBase::BiQuinticSplineBase":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase19BiQuinticSplineBaseERK6string"],"Splines::BiQuinticSplineBase::BiQuinticSplineBase::name":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase19BiQuinticSplineBaseERK6string"],"Splines::BiQuinticSplineBase::D":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSplineBase::D::d":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSplineBase::D::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSplineBase::D::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase1DE9real_type9real_typeAL3E_9real_type"],"Splines::BiQuinticSplineBase::DD":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSplineBase::DD::dd":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSplineBase::DD::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSplineBase::DD::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BiQuinticSplineBase::Dx":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DxE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dx::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DxE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dx::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DxE9real_type9real_type"],"Splines::BiQuinticSplineBase::DxNode":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxNode::i":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxNode::j":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::Dxx":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxxE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dxx::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxxE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dxx::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxxE9real_type9real_type"],"Splines::BiQuinticSplineBase::DxxNode":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxxNode::i":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxxNode::j":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxxNodeE7integer7integer"],"Splines::BiQuinticSplineBase::Dxy":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dxy::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dxy::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DxyE9real_type9real_type"],"Splines::BiQuinticSplineBase::DxyNode":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxyNode::i":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DxyNode::j":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DxyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::Dy":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dy::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dy::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase2DyE9real_type9real_type"],"Splines::BiQuinticSplineBase::DyNode":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DyNode::i":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DyNode::j":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase6DyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::Dyy":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DyyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dyy::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DyyE9real_type9real_type"],"Splines::BiQuinticSplineBase::Dyy::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase3DyyE9real_type9real_type"],"Splines::BiQuinticSplineBase::DyyNode":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DyyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DyyNode::i":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DyyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::DyyNode::j":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase7DyyNodeE7integer7integer"],"Splines::BiQuinticSplineBase::build":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::build::fortran_storage":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::build::gc":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK16GenericContainer"],"Splines::BiQuinticSplineBase::build::incx":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSplineBase::build::incy":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSplineBase::build::ldZ":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BiQuinticSplineBase::build::nx":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiQuinticSplineBase::build::ny":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BiQuinticSplineBase::build::transposed":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::build::x":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::build::y":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::build::z":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BiQuinticSplineBase::clear":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase5clearEv"],"Splines::BiQuinticSplineBase::dump_data":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase9dump_dataER12ostream_type"],"Splines::BiQuinticSplineBase::dump_data::s":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase9dump_dataER12ostream_type"],"Splines::BiQuinticSplineBase::eval":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4evalE9real_type9real_type"],"Splines::BiQuinticSplineBase::eval::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase4evalE9real_type9real_type"],"Splines::BiQuinticSplineBase::eval::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase4evalE9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_1":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_1::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_1::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_1E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_2":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_2::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_1_2::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_1_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase8eval_D_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2_2":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2_2::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::eval_D_2_2::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase10eval_D_2_2E9real_type9real_type"],"Splines::BiQuinticSplineBase::info":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4infoEv"],"Splines::BiQuinticSplineBase::info::stream":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase4infoER12ostream_type"],"Splines::BiQuinticSplineBase::is_x_bounded":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase12is_x_boundedEv"],"Splines::BiQuinticSplineBase::is_x_closed":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase11is_x_closedEv"],"Splines::BiQuinticSplineBase::is_y_bounded":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase12is_y_boundedEv"],"Splines::BiQuinticSplineBase::is_y_closed":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase11is_y_closedEv"],"Splines::BiQuinticSplineBase::make_x_bounded":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase14make_x_boundedEv"],"Splines::BiQuinticSplineBase::make_x_closed":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase13make_x_closedEv"],"Splines::BiQuinticSplineBase::make_x_opened":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase13make_x_openedEv"],"Splines::BiQuinticSplineBase::make_x_unbounded":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase16make_x_unboundedEv"],"Splines::BiQuinticSplineBase::make_y_bounded":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase14make_y_boundedEv"],"Splines::BiQuinticSplineBase::make_y_closed":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase13make_y_closedEv"],"Splines::BiQuinticSplineBase::make_y_opened":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase13make_y_openedEv"],"Splines::BiQuinticSplineBase::make_y_unbounded":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase16make_y_unboundedEv"],"Splines::BiQuinticSplineBase::name":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4nameEv"],"Splines::BiQuinticSplineBase::numPointX":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase9numPointXEv"],"Splines::BiQuinticSplineBase::numPointY":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase9numPointYEv"],"Splines::BiQuinticSplineBase::operator()":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBaseclE9real_type9real_type"],"Splines::BiQuinticSplineBase::operator()::x":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBaseclE9real_type9real_type"],"Splines::BiQuinticSplineBase::operator()::y":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBaseclE9real_type9real_type"],"Splines::BiQuinticSplineBase::setup":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBase5setupERK16GenericContainer"],"Splines::BiQuinticSplineBase::setup::gc":[32,3,1,"_CPPv4N7Splines19BiQuinticSplineBase5setupERK16GenericContainer"],"Splines::BiQuinticSplineBase::type_name":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase9type_nameEv"],"Splines::BiQuinticSplineBase::writeToStream":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase13writeToStreamER12ostream_type"],"Splines::BiQuinticSplineBase::writeToStream::s":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase13writeToStreamER12ostream_type"],"Splines::BiQuinticSplineBase::xMax":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4xMaxEv"],"Splines::BiQuinticSplineBase::xMin":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4xMinEv"],"Splines::BiQuinticSplineBase::xNode":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase5xNodeE7integer"],"Splines::BiQuinticSplineBase::xNode::i":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase5xNodeE7integer"],"Splines::BiQuinticSplineBase::yMax":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4yMaxEv"],"Splines::BiQuinticSplineBase::yMin":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4yMinEv"],"Splines::BiQuinticSplineBase::yNode":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase5yNodeE7integer"],"Splines::BiQuinticSplineBase::yNode::i":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase5yNodeE7integer"],"Splines::BiQuinticSplineBase::zMax":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4zMaxEv"],"Splines::BiQuinticSplineBase::zMin":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase4zMinEv"],"Splines::BiQuinticSplineBase::zNode":[32,2,1,"_CPPv4NK7Splines19BiQuinticSplineBase5zNodeE7integer7integer"],"Splines::BiQuinticSplineBase::zNode::i":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase5zNodeE7integer7integer"],"Splines::BiQuinticSplineBase::zNode::j":[32,3,1,"_CPPv4NK7Splines19BiQuinticSplineBase5zNodeE7integer7integer"],"Splines::BiQuinticSplineBase::~BiQuinticSplineBase":[32,2,1,"_CPPv4N7Splines19BiQuinticSplineBaseD0Ev"],"Splines::BilinearSpline":[31,1,1,"_CPPv4N7Splines14BilinearSplineE"],"Splines::BilinearSpline::BilinearSpline":[31,2,1,"_CPPv4N7Splines14BilinearSpline14BilinearSplineERK6string"],"Splines::BilinearSpline::BilinearSpline::name":[31,3,1,"_CPPv4N7Splines14BilinearSpline14BilinearSplineERK6string"],"Splines::BilinearSpline::D":[31,2,1,"_CPPv4NK7Splines14BilinearSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BilinearSpline::D::d":[31,3,1,"_CPPv4NK7Splines14BilinearSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BilinearSpline::D::x":[31,3,1,"_CPPv4NK7Splines14BilinearSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BilinearSpline::D::y":[31,3,1,"_CPPv4NK7Splines14BilinearSpline1DE9real_type9real_typeAL3E_9real_type"],"Splines::BilinearSpline::DD":[31,2,1,"_CPPv4NK7Splines14BilinearSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BilinearSpline::DD::dd":[31,3,1,"_CPPv4NK7Splines14BilinearSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BilinearSpline::DD::x":[31,3,1,"_CPPv4NK7Splines14BilinearSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BilinearSpline::DD::y":[31,3,1,"_CPPv4NK7Splines14BilinearSpline2DDE9real_type9real_typeAL6E_9real_type"],"Splines::BilinearSpline::Dx":[31,2,1,"_CPPv4NK7Splines14BilinearSpline2DxE9real_type9real_type"],"Splines::BilinearSpline::Dx::x":[31,3,1,"_CPPv4NK7Splines14BilinearSpline2DxE9real_type9real_type"],"Splines::BilinearSpline::Dx::y":[31,3,1,"_CPPv4NK7Splines14BilinearSpline2DxE9real_type9real_type"],"Splines::BilinearSpline::Dxx":[31,2,1,"_CPPv4NK7Splines14BilinearSpline3DxxE9real_type9real_type"],"Splines::BilinearSpline::Dxy":[31,2,1,"_CPPv4NK7Splines14BilinearSpline3DxyE9real_type9real_type"],"Splines::BilinearSpline::Dy":[31,2,1,"_CPPv4NK7Splines14BilinearSpline2DyE9real_type9real_type"],"Splines::BilinearSpline::Dy::x":[31,3,1,"_CPPv4NK7Splines14BilinearSpline2DyE9real_type9real_type"],"Splines::BilinearSpline::Dy::y":[31,3,1,"_CPPv4NK7Splines14BilinearSpline2DyE9real_type9real_type"],"Splines::BilinearSpline::Dyy":[31,2,1,"_CPPv4NK7Splines14BilinearSpline3DyyE9real_type9real_type"],"Splines::BilinearSpline::build":[31,2,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::build::fortran_storage":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::build::gc":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK16GenericContainer"],"Splines::BilinearSpline::build::incx":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BilinearSpline::build::incy":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BilinearSpline::build::ldZ":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::BilinearSpline::build::nx":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BilinearSpline::build::ny":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::BilinearSpline::build::transposed":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::build::x":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::build::y":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::build::z":[31,3,1,"_CPPv4N7Splines14BilinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::BilinearSpline::clear":[31,2,1,"_CPPv4N7Splines14BilinearSpline5clearEv"],"Splines::BilinearSpline::dump_data":[31,2,1,"_CPPv4NK7Splines14BilinearSpline9dump_dataER12ostream_type"],"Splines::BilinearSpline::dump_data::s":[31,3,1,"_CPPv4NK7Splines14BilinearSpline9dump_dataER12ostream_type"],"Splines::BilinearSpline::eval":[31,2,1,"_CPPv4NK7Splines14BilinearSpline4evalE9real_type9real_type"],"Splines::BilinearSpline::eval::x":[31,3,1,"_CPPv4NK7Splines14BilinearSpline4evalE9real_type9real_type"],"Splines::BilinearSpline::eval::y":[31,3,1,"_CPPv4NK7Splines14BilinearSpline4evalE9real_type9real_type"],"Splines::BilinearSpline::eval_D_1":[31,2,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1::x":[31,3,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1::y":[31,3,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_1":[31,2,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_1::x":[31,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_1::y":[31,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_1E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_2":[31,2,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_2::x":[31,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_1_2::y":[31,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_1_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2":[31,2,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2::x":[31,3,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2::y":[31,3,1,"_CPPv4NK7Splines14BilinearSpline8eval_D_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2_2":[31,2,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_2_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2_2::x":[31,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_2_2E9real_type9real_type"],"Splines::BilinearSpline::eval_D_2_2::y":[31,3,1,"_CPPv4NK7Splines14BilinearSpline10eval_D_2_2E9real_type9real_type"],"Splines::BilinearSpline::info":[31,2,1,"_CPPv4NK7Splines14BilinearSpline4infoEv"],"Splines::BilinearSpline::info::stream":[31,3,1,"_CPPv4NK7Splines14BilinearSpline4infoER12ostream_type"],"Splines::BilinearSpline::is_x_bounded":[31,2,1,"_CPPv4NK7Splines14BilinearSpline12is_x_boundedEv"],"Splines::BilinearSpline::is_x_closed":[31,2,1,"_CPPv4NK7Splines14BilinearSpline11is_x_closedEv"],"Splines::BilinearSpline::is_y_bounded":[31,2,1,"_CPPv4NK7Splines14BilinearSpline12is_y_boundedEv"],"Splines::BilinearSpline::is_y_closed":[31,2,1,"_CPPv4NK7Splines14BilinearSpline11is_y_closedEv"],"Splines::BilinearSpline::make_x_bounded":[31,2,1,"_CPPv4N7Splines14BilinearSpline14make_x_boundedEv"],"Splines::BilinearSpline::make_x_closed":[31,2,1,"_CPPv4N7Splines14BilinearSpline13make_x_closedEv"],"Splines::BilinearSpline::make_x_opened":[31,2,1,"_CPPv4N7Splines14BilinearSpline13make_x_openedEv"],"Splines::BilinearSpline::make_x_unbounded":[31,2,1,"_CPPv4N7Splines14BilinearSpline16make_x_unboundedEv"],"Splines::BilinearSpline::make_y_bounded":[31,2,1,"_CPPv4N7Splines14BilinearSpline14make_y_boundedEv"],"Splines::BilinearSpline::make_y_closed":[31,2,1,"_CPPv4N7Splines14BilinearSpline13make_y_closedEv"],"Splines::BilinearSpline::make_y_opened":[31,2,1,"_CPPv4N7Splines14BilinearSpline13make_y_openedEv"],"Splines::BilinearSpline::make_y_unbounded":[31,2,1,"_CPPv4N7Splines14BilinearSpline16make_y_unboundedEv"],"Splines::BilinearSpline::name":[31,2,1,"_CPPv4NK7Splines14BilinearSpline4nameEv"],"Splines::BilinearSpline::numPointX":[31,2,1,"_CPPv4NK7Splines14BilinearSpline9numPointXEv"],"Splines::BilinearSpline::numPointY":[31,2,1,"_CPPv4NK7Splines14BilinearSpline9numPointYEv"],"Splines::BilinearSpline::operator()":[31,2,1,"_CPPv4NK7Splines14BilinearSplineclE9real_type9real_type"],"Splines::BilinearSpline::operator()::x":[31,3,1,"_CPPv4NK7Splines14BilinearSplineclE9real_type9real_type"],"Splines::BilinearSpline::operator()::y":[31,3,1,"_CPPv4NK7Splines14BilinearSplineclE9real_type9real_type"],"Splines::BilinearSpline::setup":[31,2,1,"_CPPv4N7Splines14BilinearSpline5setupERK16GenericContainer"],"Splines::BilinearSpline::setup::gc":[31,3,1,"_CPPv4N7Splines14BilinearSpline5setupERK16GenericContainer"],"Splines::BilinearSpline::type_name":[31,2,1,"_CPPv4NK7Splines14BilinearSpline9type_nameEv"],"Splines::BilinearSpline::writeToStream":[31,2,1,"_CPPv4NK7Splines14BilinearSpline13writeToStreamER12ostream_type"],"Splines::BilinearSpline::writeToStream::s":[31,3,1,"_CPPv4NK7Splines14BilinearSpline13writeToStreamER12ostream_type"],"Splines::BilinearSpline::xMax":[31,2,1,"_CPPv4NK7Splines14BilinearSpline4xMaxEv"],"Splines::BilinearSpline::xMin":[31,2,1,"_CPPv4NK7Splines14BilinearSpline4xMinEv"],"Splines::BilinearSpline::xNode":[31,2,1,"_CPPv4NK7Splines14BilinearSpline5xNodeE7integer"],"Splines::BilinearSpline::xNode::i":[31,3,1,"_CPPv4NK7Splines14BilinearSpline5xNodeE7integer"],"Splines::BilinearSpline::yMax":[31,2,1,"_CPPv4NK7Splines14BilinearSpline4yMaxEv"],"Splines::BilinearSpline::yMin":[31,2,1,"_CPPv4NK7Splines14BilinearSpline4yMinEv"],"Splines::BilinearSpline::yNode":[31,2,1,"_CPPv4NK7Splines14BilinearSpline5yNodeE7integer"],"Splines::BilinearSpline::yNode::i":[31,3,1,"_CPPv4NK7Splines14BilinearSpline5yNodeE7integer"],"Splines::BilinearSpline::zMax":[31,2,1,"_CPPv4NK7Splines14BilinearSpline4zMaxEv"],"Splines::BilinearSpline::zMin":[31,2,1,"_CPPv4NK7Splines14BilinearSpline4zMinEv"],"Splines::BilinearSpline::zNode":[31,2,1,"_CPPv4NK7Splines14BilinearSpline5zNodeE7integer7integer"],"Splines::BilinearSpline::zNode::i":[31,3,1,"_CPPv4NK7Splines14BilinearSpline5zNodeE7integer7integer"],"Splines::BilinearSpline::zNode::j":[31,3,1,"_CPPv4NK7Splines14BilinearSpline5zNodeE7integer7integer"],"Splines::BilinearSpline::~BilinearSpline":[31,2,1,"_CPPv4N7Splines14BilinearSplineD0Ev"],"Splines::CONSTANT_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D13CONSTANT_TYPEE"],"Splines::CUBIC_QUINTIC":[56,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13CUBIC_QUINTICE"],"Splines::CUBIC_SPLINE_TYPE_BC":[54,5,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BCE"],"Splines::CUBIC_SPLINE_TYPE_BC::EXTRAPOLATE_BC":[54,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC14EXTRAPOLATE_BCE"],"Splines::CUBIC_SPLINE_TYPE_BC::NATURAL_BC":[54,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC10NATURAL_BCE"],"Splines::CUBIC_SPLINE_TYPE_BC::NOT_A_KNOT":[54,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC10NOT_A_KNOTE"],"Splines::CUBIC_SPLINE_TYPE_BC::PARABOLIC_RUNOUT_BC":[54,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC19PARABOLIC_RUNOUT_BCE"],"Splines::CUBIC_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D10CUBIC_TYPEE"],"Splines::ConstantSpline":[34,1,1,"_CPPv4N7Splines14ConstantSplineE"],"Splines::ConstantSpline::ConstantSpline":[34,2,1,"_CPPv4N7Splines14ConstantSpline14ConstantSplineERK6string"],"Splines::ConstantSpline::ConstantSpline::name":[34,3,1,"_CPPv4N7Splines14ConstantSpline14ConstantSplineERK6string"],"Splines::ConstantSpline::D":[34,2,1,"_CPPv4NK7Splines14ConstantSpline1DE9real_type"],"Splines::ConstantSpline::DD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline2DDE9real_type"],"Splines::ConstantSpline::DDD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline3DDDE9real_type"],"Splines::ConstantSpline::DDDD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4DDDDE9real_type"],"Splines::ConstantSpline::DDDDD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline5DDDDDE9real_type"],"Splines::ConstantSpline::build":[34,2,1,"_CPPv4N7Splines14ConstantSpline5buildEv"],"Splines::ConstantSpline::build::gc":[34,3,1,"_CPPv4N7Splines14ConstantSpline5buildERK16GenericContainer"],"Splines::ConstantSpline::build::incx":[34,3,1,"_CPPv4N7Splines14ConstantSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::ConstantSpline::build::incy":[34,3,1,"_CPPv4N7Splines14ConstantSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::ConstantSpline::build::n":[34,3,1,"_CPPv4N7Splines14ConstantSpline5buildEPK9real_typePK9real_type7integer"],"Splines::ConstantSpline::build::x":[34,3,1,"_CPPv4N7Splines14ConstantSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::ConstantSpline::build::y":[34,3,1,"_CPPv4N7Splines14ConstantSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::ConstantSpline::clear":[34,2,1,"_CPPv4N7Splines14ConstantSpline5clearEv"],"Splines::ConstantSpline::coeffs":[34,2,1,"_CPPv4NK7Splines14ConstantSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::ConstantSpline::coeffs::cfs":[34,3,1,"_CPPv4NK7Splines14ConstantSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::ConstantSpline::coeffs::nodes":[34,3,1,"_CPPv4NK7Splines14ConstantSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::ConstantSpline::coeffs::transpose":[34,3,1,"_CPPv4NK7Splines14ConstantSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::ConstantSpline::dropBack":[34,2,1,"_CPPv4N7Splines14ConstantSpline8dropBackEv"],"Splines::ConstantSpline::dump":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4dumpER12ostream_type7integerPKc"],"Splines::ConstantSpline::dump::fname":[34,3,1,"_CPPv4NK7Splines14ConstantSpline4dumpEPKc7integerPKc"],"Splines::ConstantSpline::dump::header":[34,3,1,"_CPPv4NK7Splines14ConstantSpline4dumpER12ostream_type7integerPKc"],"Splines::ConstantSpline::dump::nintervals":[34,3,1,"_CPPv4NK7Splines14ConstantSpline4dumpER12ostream_type7integerPKc"],"Splines::ConstantSpline::dump::s":[34,3,1,"_CPPv4NK7Splines14ConstantSpline4dumpER12ostream_type7integerPKc"],"Splines::ConstantSpline::eval":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4evalE9real_type"],"Splines::ConstantSpline::eval::x":[34,3,1,"_CPPv4NK7Splines14ConstantSpline4evalE9real_type"],"Splines::ConstantSpline::eval_D":[34,2,1,"_CPPv4NK7Splines14ConstantSpline6eval_DE9real_type"],"Splines::ConstantSpline::eval_D::x":[34,3,1,"_CPPv4NK7Splines14ConstantSpline6eval_DE9real_type"],"Splines::ConstantSpline::eval_DD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline7eval_DDE9real_type"],"Splines::ConstantSpline::eval_DD::x":[34,3,1,"_CPPv4NK7Splines14ConstantSpline7eval_DDE9real_type"],"Splines::ConstantSpline::eval_DDD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline8eval_DDDE9real_type"],"Splines::ConstantSpline::eval_DDD::x":[34,3,1,"_CPPv4NK7Splines14ConstantSpline8eval_DDDE9real_type"],"Splines::ConstantSpline::eval_DDDD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline9eval_DDDDE9real_type"],"Splines::ConstantSpline::eval_DDDD::x":[34,3,1,"_CPPv4NK7Splines14ConstantSpline9eval_DDDDE9real_type"],"Splines::ConstantSpline::eval_DDDDD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline10eval_DDDDDE9real_type"],"Splines::ConstantSpline::eval_DDDDD::x":[34,3,1,"_CPPv4NK7Splines14ConstantSpline10eval_DDDDDE9real_type"],"Splines::ConstantSpline::id_D":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4id_DE7integer9real_type"],"Splines::ConstantSpline::id_DD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline5id_DDE7integer9real_type"],"Splines::ConstantSpline::id_DDD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline6id_DDDE7integer9real_type"],"Splines::ConstantSpline::id_DDDD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline7id_DDDDE7integer9real_type"],"Splines::ConstantSpline::id_DDDDD":[34,2,1,"_CPPv4NK7Splines14ConstantSpline8id_DDDDDE7integer9real_type"],"Splines::ConstantSpline::id_eval":[34,2,1,"_CPPv4NK7Splines14ConstantSpline7id_evalE7integer9real_type"],"Splines::ConstantSpline::id_eval::ni":[34,3,1,"_CPPv4NK7Splines14ConstantSpline7id_evalE7integer9real_type"],"Splines::ConstantSpline::id_eval::x":[34,3,1,"_CPPv4NK7Splines14ConstantSpline7id_evalE7integer9real_type"],"Splines::ConstantSpline::info":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4infoEv"],"Splines::ConstantSpline::info::stream":[34,3,1,"_CPPv4NK7Splines14ConstantSpline4infoER12ostream_type"],"Splines::ConstantSpline::is_bounded":[34,2,1,"_CPPv4NK7Splines14ConstantSpline10is_boundedEv"],"Splines::ConstantSpline::is_closed":[34,2,1,"_CPPv4NK7Splines14ConstantSpline9is_closedEv"],"Splines::ConstantSpline::is_extended_constant":[34,2,1,"_CPPv4NK7Splines14ConstantSpline20is_extended_constantEv"],"Splines::ConstantSpline::make_bounded":[34,2,1,"_CPPv4N7Splines14ConstantSpline12make_boundedEv"],"Splines::ConstantSpline::make_closed":[34,2,1,"_CPPv4N7Splines14ConstantSpline11make_closedEv"],"Splines::ConstantSpline::make_extended_constant":[34,2,1,"_CPPv4N7Splines14ConstantSpline22make_extended_constantEv"],"Splines::ConstantSpline::make_extended_not_constant":[34,2,1,"_CPPv4N7Splines14ConstantSpline26make_extended_not_constantEv"],"Splines::ConstantSpline::make_opened":[34,2,1,"_CPPv4N7Splines14ConstantSpline11make_openedEv"],"Splines::ConstantSpline::make_unbounded":[34,2,1,"_CPPv4N7Splines14ConstantSpline14make_unboundedEv"],"Splines::ConstantSpline::name":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4nameEv"],"Splines::ConstantSpline::numPoints":[34,2,1,"_CPPv4NK7Splines14ConstantSpline9numPointsEv"],"Splines::ConstantSpline::operator()":[34,2,1,"_CPPv4NK7Splines14ConstantSplineclE9real_type"],"Splines::ConstantSpline::operator()::x":[34,3,1,"_CPPv4NK7Splines14ConstantSplineclE9real_type"],"Splines::ConstantSpline::order":[34,2,1,"_CPPv4NK7Splines14ConstantSpline5orderEv"],"Splines::ConstantSpline::pushBack":[34,2,1,"_CPPv4N7Splines14ConstantSpline8pushBackE9real_type9real_type"],"Splines::ConstantSpline::pushBack::x":[34,3,1,"_CPPv4N7Splines14ConstantSpline8pushBackE9real_type9real_type"],"Splines::ConstantSpline::pushBack::y":[34,3,1,"_CPPv4N7Splines14ConstantSpline8pushBackE9real_type9real_type"],"Splines::ConstantSpline::reserve":[34,2,1,"_CPPv4N7Splines14ConstantSpline7reserveE7integer"],"Splines::ConstantSpline::reserve::npts":[34,3,1,"_CPPv4N7Splines14ConstantSpline7reserveE7integer"],"Splines::ConstantSpline::reserve_external":[34,2,1,"_CPPv4N7Splines14ConstantSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::ConstantSpline::reserve_external::n":[34,3,1,"_CPPv4N7Splines14ConstantSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::ConstantSpline::reserve_external::p_x":[34,3,1,"_CPPv4N7Splines14ConstantSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::ConstantSpline::reserve_external::p_y":[34,3,1,"_CPPv4N7Splines14ConstantSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::ConstantSpline::search":[34,2,1,"_CPPv4NK7Splines14ConstantSpline6searchER9real_type"],"Splines::ConstantSpline::search::x":[34,3,1,"_CPPv4NK7Splines14ConstantSpline6searchER9real_type"],"Splines::ConstantSpline::setOrigin":[34,2,1,"_CPPv4N7Splines14ConstantSpline9setOriginE9real_type"],"Splines::ConstantSpline::setOrigin::x0":[34,3,1,"_CPPv4N7Splines14ConstantSpline9setOriginE9real_type"],"Splines::ConstantSpline::setRange":[34,2,1,"_CPPv4N7Splines14ConstantSpline8setRangeE9real_type9real_type"],"Splines::ConstantSpline::setRange::xmax":[34,3,1,"_CPPv4N7Splines14ConstantSpline8setRangeE9real_type9real_type"],"Splines::ConstantSpline::setRange::xmin":[34,3,1,"_CPPv4N7Splines14ConstantSpline8setRangeE9real_type9real_type"],"Splines::ConstantSpline::setup":[34,2,1,"_CPPv4N7Splines14ConstantSpline5setupERK16GenericContainer"],"Splines::ConstantSpline::setup::gc":[34,3,1,"_CPPv4N7Splines14ConstantSpline5setupERK16GenericContainer"],"Splines::ConstantSpline::type":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4typeEv"],"Splines::ConstantSpline::type_name":[34,2,1,"_CPPv4NK7Splines14ConstantSpline9type_nameEv"],"Splines::ConstantSpline::writeToStream":[34,2,1,"_CPPv4NK7Splines14ConstantSpline13writeToStreamER12ostream_type"],"Splines::ConstantSpline::xBegin":[34,2,1,"_CPPv4NK7Splines14ConstantSpline6xBeginEv"],"Splines::ConstantSpline::xEnd":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4xEndEv"],"Splines::ConstantSpline::xMax":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4xMaxEv"],"Splines::ConstantSpline::xMin":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4xMinEv"],"Splines::ConstantSpline::xNode":[34,2,1,"_CPPv4NK7Splines14ConstantSpline5xNodeE7integer"],"Splines::ConstantSpline::xNode::i":[34,3,1,"_CPPv4NK7Splines14ConstantSpline5xNodeE7integer"],"Splines::ConstantSpline::yBegin":[34,2,1,"_CPPv4NK7Splines14ConstantSpline6yBeginEv"],"Splines::ConstantSpline::yEnd":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4yEndEv"],"Splines::ConstantSpline::yMax":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4yMaxEv"],"Splines::ConstantSpline::yMin":[34,2,1,"_CPPv4NK7Splines14ConstantSpline4yMinEv"],"Splines::ConstantSpline::yNode":[34,2,1,"_CPPv4NK7Splines14ConstantSpline5yNodeE7integer"],"Splines::ConstantSpline::yNode::i":[34,3,1,"_CPPv4NK7Splines14ConstantSpline5yNodeE7integer"],"Splines::ConstantSpline::y_min_max":[34,2,1,"_CPPv4NK7Splines14ConstantSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::ConstantSpline::y_min_max::i_max_pos":[34,3,1,"_CPPv4NK7Splines14ConstantSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::ConstantSpline::y_min_max::i_min_pos":[34,3,1,"_CPPv4NK7Splines14ConstantSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::ConstantSpline::y_min_max::x_max_pos":[34,3,1,"_CPPv4NK7Splines14ConstantSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::ConstantSpline::y_min_max::x_min_pos":[34,3,1,"_CPPv4NK7Splines14ConstantSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::ConstantSpline::y_min_max::y_max":[34,3,1,"_CPPv4NK7Splines14ConstantSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::ConstantSpline::y_min_max::y_min":[34,3,1,"_CPPv4NK7Splines14ConstantSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::ConstantSpline::~ConstantSpline":[34,2,1,"_CPPv4N7Splines14ConstantSplineD0Ev"],"Splines::CubicSpline":[35,1,1,"_CPPv4N7Splines11CubicSplineE"],"Splines::CubicSpline::CubicSpline":[35,2,1,"_CPPv4N7Splines11CubicSpline11CubicSplineERK6string"],"Splines::CubicSpline::CubicSpline::name":[35,3,1,"_CPPv4N7Splines11CubicSpline11CubicSplineERK6string"],"Splines::CubicSpline::D":[35,2,1,"_CPPv4NK7Splines11CubicSpline1DE9real_type"],"Splines::CubicSpline::D::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline1DE9real_type"],"Splines::CubicSpline::DD":[35,2,1,"_CPPv4NK7Splines11CubicSpline2DDE9real_type"],"Splines::CubicSpline::DD::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline2DDE9real_type"],"Splines::CubicSpline::DDD":[35,2,1,"_CPPv4NK7Splines11CubicSpline3DDDE9real_type"],"Splines::CubicSpline::DDD::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline3DDDE9real_type"],"Splines::CubicSpline::DDDD":[35,2,1,"_CPPv4NK7Splines11CubicSpline4DDDDE9real_type"],"Splines::CubicSpline::DDDDD":[35,2,1,"_CPPv4NK7Splines11CubicSpline5DDDDDE9real_type"],"Splines::CubicSpline::build":[35,2,1,"_CPPv4N7Splines11CubicSpline5buildEv"],"Splines::CubicSpline::build::gc":[35,3,1,"_CPPv4N7Splines11CubicSpline5buildERK16GenericContainer"],"Splines::CubicSpline::build::incx":[35,3,1,"_CPPv4N7Splines11CubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSpline::build::incy":[35,3,1,"_CPPv4N7Splines11CubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSpline::build::incyp":[35,3,1,"_CPPv4N7Splines11CubicSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSpline::build::n":[35,3,1,"_CPPv4N7Splines11CubicSpline5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::CubicSpline::build::x":[35,3,1,"_CPPv4N7Splines11CubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSpline::build::y":[35,3,1,"_CPPv4N7Splines11CubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSpline::build::yp":[35,3,1,"_CPPv4N7Splines11CubicSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSpline::clear":[35,2,1,"_CPPv4N7Splines11CubicSpline5clearEv"],"Splines::CubicSpline::coeffs":[35,2,1,"_CPPv4NK7Splines11CubicSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSpline::coeffs::cfs":[35,3,1,"_CPPv4NK7Splines11CubicSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSpline::coeffs::nodes":[35,3,1,"_CPPv4NK7Splines11CubicSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSpline::coeffs::transpose":[35,3,1,"_CPPv4NK7Splines11CubicSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSpline::copySpline":[35,2,1,"_CPPv4N7Splines11CubicSpline10copySplineERK15CubicSplineBase"],"Splines::CubicSpline::copySpline::S":[35,3,1,"_CPPv4N7Splines11CubicSpline10copySplineERK15CubicSplineBase"],"Splines::CubicSpline::dropBack":[35,2,1,"_CPPv4N7Splines11CubicSpline8dropBackEv"],"Splines::CubicSpline::dump":[35,2,1,"_CPPv4NK7Splines11CubicSpline4dumpER12ostream_type7integerPKc"],"Splines::CubicSpline::dump::fname":[35,3,1,"_CPPv4NK7Splines11CubicSpline4dumpEPKc7integerPKc"],"Splines::CubicSpline::dump::header":[35,3,1,"_CPPv4NK7Splines11CubicSpline4dumpER12ostream_type7integerPKc"],"Splines::CubicSpline::dump::nintervals":[35,3,1,"_CPPv4NK7Splines11CubicSpline4dumpER12ostream_type7integerPKc"],"Splines::CubicSpline::dump::s":[35,3,1,"_CPPv4NK7Splines11CubicSpline4dumpER12ostream_type7integerPKc"],"Splines::CubicSpline::eval":[35,2,1,"_CPPv4NK7Splines11CubicSpline4evalE9real_type"],"Splines::CubicSpline::eval::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline4evalE9real_type"],"Splines::CubicSpline::eval_D":[35,2,1,"_CPPv4NK7Splines11CubicSpline6eval_DE9real_type"],"Splines::CubicSpline::eval_D::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline6eval_DE9real_type"],"Splines::CubicSpline::eval_DD":[35,2,1,"_CPPv4NK7Splines11CubicSpline7eval_DDE9real_type"],"Splines::CubicSpline::eval_DD::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline7eval_DDE9real_type"],"Splines::CubicSpline::eval_DDD":[35,2,1,"_CPPv4NK7Splines11CubicSpline8eval_DDDE9real_type"],"Splines::CubicSpline::eval_DDD::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline8eval_DDDE9real_type"],"Splines::CubicSpline::eval_DDDD":[35,2,1,"_CPPv4NK7Splines11CubicSpline9eval_DDDDE9real_type"],"Splines::CubicSpline::eval_DDDD::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline9eval_DDDDE9real_type"],"Splines::CubicSpline::eval_DDDDD":[35,2,1,"_CPPv4NK7Splines11CubicSpline10eval_DDDDDE9real_type"],"Splines::CubicSpline::eval_DDDDD::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline10eval_DDDDDE9real_type"],"Splines::CubicSpline::id_D":[35,2,1,"_CPPv4NK7Splines11CubicSpline4id_DE7integer9real_type"],"Splines::CubicSpline::id_D::ni":[35,3,1,"_CPPv4NK7Splines11CubicSpline4id_DE7integer9real_type"],"Splines::CubicSpline::id_D::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline4id_DE7integer9real_type"],"Splines::CubicSpline::id_DD":[35,2,1,"_CPPv4NK7Splines11CubicSpline5id_DDE7integer9real_type"],"Splines::CubicSpline::id_DD::ni":[35,3,1,"_CPPv4NK7Splines11CubicSpline5id_DDE7integer9real_type"],"Splines::CubicSpline::id_DD::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline5id_DDE7integer9real_type"],"Splines::CubicSpline::id_DDD":[35,2,1,"_CPPv4NK7Splines11CubicSpline6id_DDDE7integer9real_type"],"Splines::CubicSpline::id_DDD::ni":[35,3,1,"_CPPv4NK7Splines11CubicSpline6id_DDDE7integer9real_type"],"Splines::CubicSpline::id_DDD::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline6id_DDDE7integer9real_type"],"Splines::CubicSpline::id_DDDD":[35,2,1,"_CPPv4NK7Splines11CubicSpline7id_DDDDE7integer9real_type"],"Splines::CubicSpline::id_DDDDD":[35,2,1,"_CPPv4NK7Splines11CubicSpline8id_DDDDDE7integer9real_type"],"Splines::CubicSpline::id_eval":[35,2,1,"_CPPv4NK7Splines11CubicSpline7id_evalE7integer9real_type"],"Splines::CubicSpline::id_eval::ni":[35,3,1,"_CPPv4NK7Splines11CubicSpline7id_evalE7integer9real_type"],"Splines::CubicSpline::id_eval::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline7id_evalE7integer9real_type"],"Splines::CubicSpline::info":[35,2,1,"_CPPv4NK7Splines11CubicSpline4infoEv"],"Splines::CubicSpline::info::stream":[35,3,1,"_CPPv4NK7Splines11CubicSpline4infoER12ostream_type"],"Splines::CubicSpline::is_bounded":[35,2,1,"_CPPv4NK7Splines11CubicSpline10is_boundedEv"],"Splines::CubicSpline::is_closed":[35,2,1,"_CPPv4NK7Splines11CubicSpline9is_closedEv"],"Splines::CubicSpline::is_extended_constant":[35,2,1,"_CPPv4NK7Splines11CubicSpline20is_extended_constantEv"],"Splines::CubicSpline::make_bounded":[35,2,1,"_CPPv4N7Splines11CubicSpline12make_boundedEv"],"Splines::CubicSpline::make_closed":[35,2,1,"_CPPv4N7Splines11CubicSpline11make_closedEv"],"Splines::CubicSpline::make_extended_constant":[35,2,1,"_CPPv4N7Splines11CubicSpline22make_extended_constantEv"],"Splines::CubicSpline::make_extended_not_constant":[35,2,1,"_CPPv4N7Splines11CubicSpline26make_extended_not_constantEv"],"Splines::CubicSpline::make_opened":[35,2,1,"_CPPv4N7Splines11CubicSpline11make_openedEv"],"Splines::CubicSpline::make_unbounded":[35,2,1,"_CPPv4N7Splines11CubicSpline14make_unboundedEv"],"Splines::CubicSpline::name":[35,2,1,"_CPPv4NK7Splines11CubicSpline4nameEv"],"Splines::CubicSpline::numPoints":[35,2,1,"_CPPv4NK7Splines11CubicSpline9numPointsEv"],"Splines::CubicSpline::operator()":[35,2,1,"_CPPv4NK7Splines11CubicSplineclE9real_type"],"Splines::CubicSpline::operator()::x":[35,3,1,"_CPPv4NK7Splines11CubicSplineclE9real_type"],"Splines::CubicSpline::order":[35,2,1,"_CPPv4NK7Splines11CubicSpline5orderEv"],"Splines::CubicSpline::pushBack":[35,2,1,"_CPPv4N7Splines11CubicSpline8pushBackE9real_type9real_type"],"Splines::CubicSpline::pushBack::x":[35,3,1,"_CPPv4N7Splines11CubicSpline8pushBackE9real_type9real_type"],"Splines::CubicSpline::pushBack::y":[35,3,1,"_CPPv4N7Splines11CubicSpline8pushBackE9real_type9real_type"],"Splines::CubicSpline::reserve":[35,2,1,"_CPPv4N7Splines11CubicSpline7reserveE7integer"],"Splines::CubicSpline::reserve::npts":[35,3,1,"_CPPv4N7Splines11CubicSpline7reserveE7integer"],"Splines::CubicSpline::reserve_external":[35,2,1,"_CPPv4N7Splines11CubicSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSpline::reserve_external::n":[35,3,1,"_CPPv4N7Splines11CubicSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSpline::reserve_external::p_dy":[35,3,1,"_CPPv4N7Splines11CubicSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSpline::reserve_external::p_x":[35,3,1,"_CPPv4N7Splines11CubicSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSpline::reserve_external::p_y":[35,3,1,"_CPPv4N7Splines11CubicSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSpline::search":[35,2,1,"_CPPv4NK7Splines11CubicSpline6searchER9real_type"],"Splines::CubicSpline::search::x":[35,3,1,"_CPPv4NK7Splines11CubicSpline6searchER9real_type"],"Splines::CubicSpline::setFinalBC":[35,2,1,"_CPPv4N7Splines11CubicSpline10setFinalBCE20CUBIC_SPLINE_TYPE_BC"],"Splines::CubicSpline::setFinalBC::bcn":[35,3,1,"_CPPv4N7Splines11CubicSpline10setFinalBCE20CUBIC_SPLINE_TYPE_BC"],"Splines::CubicSpline::setInitialBC":[35,2,1,"_CPPv4N7Splines11CubicSpline12setInitialBCE20CUBIC_SPLINE_TYPE_BC"],"Splines::CubicSpline::setInitialBC::bc0":[35,3,1,"_CPPv4N7Splines11CubicSpline12setInitialBCE20CUBIC_SPLINE_TYPE_BC"],"Splines::CubicSpline::setOrigin":[35,2,1,"_CPPv4N7Splines11CubicSpline9setOriginE9real_type"],"Splines::CubicSpline::setOrigin::x0":[35,3,1,"_CPPv4N7Splines11CubicSpline9setOriginE9real_type"],"Splines::CubicSpline::setRange":[35,2,1,"_CPPv4N7Splines11CubicSpline8setRangeE9real_type9real_type"],"Splines::CubicSpline::setRange::xmax":[35,3,1,"_CPPv4N7Splines11CubicSpline8setRangeE9real_type9real_type"],"Splines::CubicSpline::setRange::xmin":[35,3,1,"_CPPv4N7Splines11CubicSpline8setRangeE9real_type9real_type"],"Splines::CubicSpline::setup":[35,2,1,"_CPPv4N7Splines11CubicSpline5setupERK16GenericContainer"],"Splines::CubicSpline::setup::gc":[35,3,1,"_CPPv4N7Splines11CubicSpline5setupERK16GenericContainer"],"Splines::CubicSpline::type":[35,2,1,"_CPPv4NK7Splines11CubicSpline4typeEv"],"Splines::CubicSpline::type_name":[35,2,1,"_CPPv4NK7Splines11CubicSpline9type_nameEv"],"Splines::CubicSpline::writeToStream":[35,2,1,"_CPPv4NK7Splines11CubicSpline13writeToStreamER12ostream_type"],"Splines::CubicSpline::writeToStream::s":[35,3,1,"_CPPv4NK7Splines11CubicSpline13writeToStreamER12ostream_type"],"Splines::CubicSpline::xBegin":[35,2,1,"_CPPv4NK7Splines11CubicSpline6xBeginEv"],"Splines::CubicSpline::xEnd":[35,2,1,"_CPPv4NK7Splines11CubicSpline4xEndEv"],"Splines::CubicSpline::xMax":[35,2,1,"_CPPv4NK7Splines11CubicSpline4xMaxEv"],"Splines::CubicSpline::xMin":[35,2,1,"_CPPv4NK7Splines11CubicSpline4xMinEv"],"Splines::CubicSpline::xNode":[35,2,1,"_CPPv4NK7Splines11CubicSpline5xNodeE7integer"],"Splines::CubicSpline::xNode::i":[35,3,1,"_CPPv4NK7Splines11CubicSpline5xNodeE7integer"],"Splines::CubicSpline::yBegin":[35,2,1,"_CPPv4NK7Splines11CubicSpline6yBeginEv"],"Splines::CubicSpline::yEnd":[35,2,1,"_CPPv4NK7Splines11CubicSpline4yEndEv"],"Splines::CubicSpline::yMax":[35,2,1,"_CPPv4NK7Splines11CubicSpline4yMaxEv"],"Splines::CubicSpline::yMin":[35,2,1,"_CPPv4NK7Splines11CubicSpline4yMinEv"],"Splines::CubicSpline::yNode":[35,2,1,"_CPPv4NK7Splines11CubicSpline5yNodeE7integer"],"Splines::CubicSpline::yNode::i":[35,3,1,"_CPPv4NK7Splines11CubicSpline5yNodeE7integer"],"Splines::CubicSpline::y_min_max":[35,2,1,"_CPPv4NK7Splines11CubicSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSpline::y_min_max::i_max_pos":[35,3,1,"_CPPv4NK7Splines11CubicSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSpline::y_min_max::i_min_pos":[35,3,1,"_CPPv4NK7Splines11CubicSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSpline::y_min_max::x_max_pos":[35,3,1,"_CPPv4NK7Splines11CubicSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSpline::y_min_max::x_min_pos":[35,3,1,"_CPPv4NK7Splines11CubicSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSpline::y_min_max::y_max":[35,3,1,"_CPPv4NK7Splines11CubicSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSpline::y_min_max::y_min":[35,3,1,"_CPPv4NK7Splines11CubicSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSpline::ypNode":[35,2,1,"_CPPv4NK7Splines11CubicSpline6ypNodeE7integer"],"Splines::CubicSpline::ypNode::i":[35,3,1,"_CPPv4NK7Splines11CubicSpline6ypNodeE7integer"],"Splines::CubicSpline::~CubicSpline":[35,2,1,"_CPPv4N7Splines11CubicSplineD0Ev"],"Splines::CubicSplineBase":[42,1,1,"_CPPv4N7Splines15CubicSplineBaseE"],"Splines::CubicSplineBase::CubicSplineBase":[42,2,1,"_CPPv4N7Splines15CubicSplineBase15CubicSplineBaseERK6string"],"Splines::CubicSplineBase::CubicSplineBase::name":[42,3,1,"_CPPv4N7Splines15CubicSplineBase15CubicSplineBaseERK6string"],"Splines::CubicSplineBase::D":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase1DE9real_type"],"Splines::CubicSplineBase::D::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase1DE9real_type"],"Splines::CubicSplineBase::DD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase2DDE9real_type"],"Splines::CubicSplineBase::DD::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase2DDE9real_type"],"Splines::CubicSplineBase::DDD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase3DDDE9real_type"],"Splines::CubicSplineBase::DDD::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase3DDDE9real_type"],"Splines::CubicSplineBase::DDDD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4DDDDE9real_type"],"Splines::CubicSplineBase::DDDDD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase5DDDDDE9real_type"],"Splines::CubicSplineBase::build":[42,2,1,"_CPPv4N7Splines15CubicSplineBase5buildEv"],"Splines::CubicSplineBase::build::gc":[42,3,1,"_CPPv4N7Splines15CubicSplineBase5buildERK16GenericContainer"],"Splines::CubicSplineBase::build::incx":[42,3,1,"_CPPv4N7Splines15CubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSplineBase::build::incy":[42,3,1,"_CPPv4N7Splines15CubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSplineBase::build::incyp":[42,3,1,"_CPPv4N7Splines15CubicSplineBase5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::CubicSplineBase::build::n":[42,3,1,"_CPPv4N7Splines15CubicSplineBase5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::CubicSplineBase::build::x":[42,3,1,"_CPPv4N7Splines15CubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSplineBase::build::y":[42,3,1,"_CPPv4N7Splines15CubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSplineBase::build::yp":[42,3,1,"_CPPv4N7Splines15CubicSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::CubicSplineBase::clear":[42,2,1,"_CPPv4N7Splines15CubicSplineBase5clearEv"],"Splines::CubicSplineBase::coeffs":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSplineBase::coeffs::cfs":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSplineBase::coeffs::nodes":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSplineBase::coeffs::transpose":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::CubicSplineBase::copySpline":[42,2,1,"_CPPv4N7Splines15CubicSplineBase10copySplineERK15CubicSplineBase"],"Splines::CubicSplineBase::copySpline::S":[42,3,1,"_CPPv4N7Splines15CubicSplineBase10copySplineERK15CubicSplineBase"],"Splines::CubicSplineBase::dropBack":[42,2,1,"_CPPv4N7Splines15CubicSplineBase8dropBackEv"],"Splines::CubicSplineBase::dump":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4dumpER12ostream_type7integerPKc"],"Splines::CubicSplineBase::dump::fname":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase4dumpEPKc7integerPKc"],"Splines::CubicSplineBase::dump::header":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase4dumpER12ostream_type7integerPKc"],"Splines::CubicSplineBase::dump::nintervals":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase4dumpER12ostream_type7integerPKc"],"Splines::CubicSplineBase::dump::s":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase4dumpER12ostream_type7integerPKc"],"Splines::CubicSplineBase::eval":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4evalE9real_type"],"Splines::CubicSplineBase::eval::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase4evalE9real_type"],"Splines::CubicSplineBase::eval_D":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase6eval_DE9real_type"],"Splines::CubicSplineBase::eval_D::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase6eval_DE9real_type"],"Splines::CubicSplineBase::eval_DD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase7eval_DDE9real_type"],"Splines::CubicSplineBase::eval_DD::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase7eval_DDE9real_type"],"Splines::CubicSplineBase::eval_DDD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase8eval_DDDE9real_type"],"Splines::CubicSplineBase::eval_DDD::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase8eval_DDDE9real_type"],"Splines::CubicSplineBase::eval_DDDD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase9eval_DDDDE9real_type"],"Splines::CubicSplineBase::eval_DDDD::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase9eval_DDDDE9real_type"],"Splines::CubicSplineBase::eval_DDDDD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase10eval_DDDDDE9real_type"],"Splines::CubicSplineBase::eval_DDDDD::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase10eval_DDDDDE9real_type"],"Splines::CubicSplineBase::id_D":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4id_DE7integer9real_type"],"Splines::CubicSplineBase::id_D::ni":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase4id_DE7integer9real_type"],"Splines::CubicSplineBase::id_D::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase4id_DE7integer9real_type"],"Splines::CubicSplineBase::id_DD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase5id_DDE7integer9real_type"],"Splines::CubicSplineBase::id_DD::ni":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase5id_DDE7integer9real_type"],"Splines::CubicSplineBase::id_DD::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase5id_DDE7integer9real_type"],"Splines::CubicSplineBase::id_DDD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase6id_DDDE7integer9real_type"],"Splines::CubicSplineBase::id_DDD::ni":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase6id_DDDE7integer9real_type"],"Splines::CubicSplineBase::id_DDD::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase6id_DDDE7integer9real_type"],"Splines::CubicSplineBase::id_DDDD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase7id_DDDDE7integer9real_type"],"Splines::CubicSplineBase::id_DDDDD":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase8id_DDDDDE7integer9real_type"],"Splines::CubicSplineBase::id_eval":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase7id_evalE7integer9real_type"],"Splines::CubicSplineBase::id_eval::ni":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase7id_evalE7integer9real_type"],"Splines::CubicSplineBase::id_eval::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase7id_evalE7integer9real_type"],"Splines::CubicSplineBase::info":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4infoEv"],"Splines::CubicSplineBase::info::stream":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase4infoER12ostream_type"],"Splines::CubicSplineBase::is_bounded":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase10is_boundedEv"],"Splines::CubicSplineBase::is_closed":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase9is_closedEv"],"Splines::CubicSplineBase::is_extended_constant":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase20is_extended_constantEv"],"Splines::CubicSplineBase::make_bounded":[42,2,1,"_CPPv4N7Splines15CubicSplineBase12make_boundedEv"],"Splines::CubicSplineBase::make_closed":[42,2,1,"_CPPv4N7Splines15CubicSplineBase11make_closedEv"],"Splines::CubicSplineBase::make_extended_constant":[42,2,1,"_CPPv4N7Splines15CubicSplineBase22make_extended_constantEv"],"Splines::CubicSplineBase::make_extended_not_constant":[42,2,1,"_CPPv4N7Splines15CubicSplineBase26make_extended_not_constantEv"],"Splines::CubicSplineBase::make_opened":[42,2,1,"_CPPv4N7Splines15CubicSplineBase11make_openedEv"],"Splines::CubicSplineBase::make_unbounded":[42,2,1,"_CPPv4N7Splines15CubicSplineBase14make_unboundedEv"],"Splines::CubicSplineBase::name":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4nameEv"],"Splines::CubicSplineBase::numPoints":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase9numPointsEv"],"Splines::CubicSplineBase::operator()":[42,2,1,"_CPPv4NK7Splines15CubicSplineBaseclE9real_type"],"Splines::CubicSplineBase::operator()::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBaseclE9real_type"],"Splines::CubicSplineBase::order":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase5orderEv"],"Splines::CubicSplineBase::pushBack":[42,2,1,"_CPPv4N7Splines15CubicSplineBase8pushBackE9real_type9real_type"],"Splines::CubicSplineBase::pushBack::x":[42,3,1,"_CPPv4N7Splines15CubicSplineBase8pushBackE9real_type9real_type"],"Splines::CubicSplineBase::pushBack::y":[42,3,1,"_CPPv4N7Splines15CubicSplineBase8pushBackE9real_type9real_type"],"Splines::CubicSplineBase::reserve":[42,2,1,"_CPPv4N7Splines15CubicSplineBase7reserveE7integer"],"Splines::CubicSplineBase::reserve::npts":[42,3,1,"_CPPv4N7Splines15CubicSplineBase7reserveE7integer"],"Splines::CubicSplineBase::reserve_external":[42,2,1,"_CPPv4N7Splines15CubicSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSplineBase::reserve_external::n":[42,3,1,"_CPPv4N7Splines15CubicSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSplineBase::reserve_external::p_dy":[42,3,1,"_CPPv4N7Splines15CubicSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSplineBase::reserve_external::p_x":[42,3,1,"_CPPv4N7Splines15CubicSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSplineBase::reserve_external::p_y":[42,3,1,"_CPPv4N7Splines15CubicSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::CubicSplineBase::search":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase6searchER9real_type"],"Splines::CubicSplineBase::search::x":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase6searchER9real_type"],"Splines::CubicSplineBase::setOrigin":[42,2,1,"_CPPv4N7Splines15CubicSplineBase9setOriginE9real_type"],"Splines::CubicSplineBase::setOrigin::x0":[42,3,1,"_CPPv4N7Splines15CubicSplineBase9setOriginE9real_type"],"Splines::CubicSplineBase::setRange":[42,2,1,"_CPPv4N7Splines15CubicSplineBase8setRangeE9real_type9real_type"],"Splines::CubicSplineBase::setRange::xmax":[42,3,1,"_CPPv4N7Splines15CubicSplineBase8setRangeE9real_type9real_type"],"Splines::CubicSplineBase::setRange::xmin":[42,3,1,"_CPPv4N7Splines15CubicSplineBase8setRangeE9real_type9real_type"],"Splines::CubicSplineBase::setup":[42,2,1,"_CPPv4N7Splines15CubicSplineBase5setupERK16GenericContainer"],"Splines::CubicSplineBase::setup::gc":[42,3,1,"_CPPv4N7Splines15CubicSplineBase5setupERK16GenericContainer"],"Splines::CubicSplineBase::type":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4typeEv"],"Splines::CubicSplineBase::type_name":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase9type_nameEv"],"Splines::CubicSplineBase::writeToStream":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase13writeToStreamER12ostream_type"],"Splines::CubicSplineBase::writeToStream::s":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase13writeToStreamER12ostream_type"],"Splines::CubicSplineBase::xBegin":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase6xBeginEv"],"Splines::CubicSplineBase::xEnd":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4xEndEv"],"Splines::CubicSplineBase::xMax":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4xMaxEv"],"Splines::CubicSplineBase::xMin":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4xMinEv"],"Splines::CubicSplineBase::xNode":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase5xNodeE7integer"],"Splines::CubicSplineBase::xNode::i":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase5xNodeE7integer"],"Splines::CubicSplineBase::yBegin":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase6yBeginEv"],"Splines::CubicSplineBase::yEnd":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4yEndEv"],"Splines::CubicSplineBase::yMax":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4yMaxEv"],"Splines::CubicSplineBase::yMin":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase4yMinEv"],"Splines::CubicSplineBase::yNode":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase5yNodeE7integer"],"Splines::CubicSplineBase::yNode::i":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase5yNodeE7integer"],"Splines::CubicSplineBase::y_min_max":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSplineBase::y_min_max::i_max_pos":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSplineBase::y_min_max::i_min_pos":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSplineBase::y_min_max::x_max_pos":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSplineBase::y_min_max::x_min_pos":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSplineBase::y_min_max::y_max":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSplineBase::y_min_max::y_min":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::CubicSplineBase::ypNode":[42,2,1,"_CPPv4NK7Splines15CubicSplineBase6ypNodeE7integer"],"Splines::CubicSplineBase::ypNode::i":[42,3,1,"_CPPv4NK7Splines15CubicSplineBase6ypNodeE7integer"],"Splines::CubicSplineBase::~CubicSplineBase":[42,2,1,"_CPPv4N7Splines15CubicSplineBaseD0Ev"],"Splines::EXTRAPOLATE_BC":[54,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC14EXTRAPOLATE_BCE"],"Splines::FangHung":[118,2,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FangHung::dim":[118,3,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FangHung::ld_pnts":[118,3,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FangHung::npts":[118,3,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FangHung::pnts":[118,3,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FangHung::t":[118,3,1,"_CPPv4N7Splines8FangHungE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen":[114,2,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen::dim":[114,3,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen::ld_pnts":[114,3,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen::npts":[114,3,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen::pnts":[114,3,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::FoleyNielsen::t":[114,3,1,"_CPPv4N7Splines12FoleyNielsenE7integer7integerPK9real_type7integerP9real_type"],"Splines::HERMITE_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D12HERMITE_TYPEE"],"Splines::Hermite3toPoly":[111,2,1,"_CPPv4N7Splines14Hermite3toPolyE9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite3toPoly::A":[111,3,1,"_CPPv4N7Splines14Hermite3toPolyE9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite3toPoly::B":[111,3,1,"_CPPv4N7Splines14Hermite3toPolyE9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite3toPoly::C":[111,3,1,"_CPPv4N7Splines14Hermite3toPolyE9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite3toPoly::D":[111,3,1,"_CPPv4N7Splines14Hermite3toPolyE9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite3toPoly::DP0":[111,3,1,"_CPPv4N7Splines14Hermite3toPolyE9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite3toPoly::DP1":[111,3,1,"_CPPv4N7Splines14Hermite3toPolyE9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite3toPoly::H":[111,3,1,"_CPPv4N7Splines14Hermite3toPolyE9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite3toPoly::P0":[111,3,1,"_CPPv4N7Splines14Hermite3toPolyE9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite3toPoly::P1":[111,3,1,"_CPPv4N7Splines14Hermite3toPolyE9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly":[113,2,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::A":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::B":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::C":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::D":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::DDP0":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::DDP1":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::DP0":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::DP1":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::E":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::F":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::P0":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::P1":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::Hermite5toPoly::h":[113,3,1,"_CPPv4N7Splines14Hermite5toPolyE9real_type9real_type9real_type9real_type9real_type9real_type9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_typeR9real_type"],"Splines::HermiteSpline":[36,1,1,"_CPPv4N7Splines13HermiteSplineE"],"Splines::HermiteSpline::D":[36,2,1,"_CPPv4NK7Splines13HermiteSpline1DE9real_type"],"Splines::HermiteSpline::D::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline1DE9real_type"],"Splines::HermiteSpline::DD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline2DDE9real_type"],"Splines::HermiteSpline::DD::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline2DDE9real_type"],"Splines::HermiteSpline::DDD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline3DDDE9real_type"],"Splines::HermiteSpline::DDD::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline3DDDE9real_type"],"Splines::HermiteSpline::DDDD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4DDDDE9real_type"],"Splines::HermiteSpline::DDDDD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline5DDDDDE9real_type"],"Splines::HermiteSpline::HermiteSpline":[36,2,1,"_CPPv4N7Splines13HermiteSpline13HermiteSplineERK6string"],"Splines::HermiteSpline::HermiteSpline::name":[36,3,1,"_CPPv4N7Splines13HermiteSpline13HermiteSplineERK6string"],"Splines::HermiteSpline::build":[36,2,1,"_CPPv4N7Splines13HermiteSpline5buildEv"],"Splines::HermiteSpline::build::gc":[36,3,1,"_CPPv4N7Splines13HermiteSpline5buildERK16GenericContainer"],"Splines::HermiteSpline::build::incx":[36,3,1,"_CPPv4N7Splines13HermiteSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::HermiteSpline::build::incy":[36,3,1,"_CPPv4N7Splines13HermiteSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::HermiteSpline::build::incyp":[36,3,1,"_CPPv4N7Splines13HermiteSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::HermiteSpline::build::n":[36,3,1,"_CPPv4N7Splines13HermiteSpline5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::HermiteSpline::build::x":[36,3,1,"_CPPv4N7Splines13HermiteSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::HermiteSpline::build::y":[36,3,1,"_CPPv4N7Splines13HermiteSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::HermiteSpline::build::yp":[36,3,1,"_CPPv4N7Splines13HermiteSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::HermiteSpline::clear":[36,2,1,"_CPPv4N7Splines13HermiteSpline5clearEv"],"Splines::HermiteSpline::coeffs":[36,2,1,"_CPPv4NK7Splines13HermiteSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::HermiteSpline::coeffs::cfs":[36,3,1,"_CPPv4NK7Splines13HermiteSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::HermiteSpline::coeffs::nodes":[36,3,1,"_CPPv4NK7Splines13HermiteSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::HermiteSpline::coeffs::transpose":[36,3,1,"_CPPv4NK7Splines13HermiteSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::HermiteSpline::copySpline":[36,2,1,"_CPPv4N7Splines13HermiteSpline10copySplineERK15CubicSplineBase"],"Splines::HermiteSpline::copySpline::S":[36,3,1,"_CPPv4N7Splines13HermiteSpline10copySplineERK15CubicSplineBase"],"Splines::HermiteSpline::dropBack":[36,2,1,"_CPPv4N7Splines13HermiteSpline8dropBackEv"],"Splines::HermiteSpline::dump":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4dumpER12ostream_type7integerPKc"],"Splines::HermiteSpline::dump::fname":[36,3,1,"_CPPv4NK7Splines13HermiteSpline4dumpEPKc7integerPKc"],"Splines::HermiteSpline::dump::header":[36,3,1,"_CPPv4NK7Splines13HermiteSpline4dumpER12ostream_type7integerPKc"],"Splines::HermiteSpline::dump::nintervals":[36,3,1,"_CPPv4NK7Splines13HermiteSpline4dumpER12ostream_type7integerPKc"],"Splines::HermiteSpline::dump::s":[36,3,1,"_CPPv4NK7Splines13HermiteSpline4dumpER12ostream_type7integerPKc"],"Splines::HermiteSpline::eval":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4evalE9real_type"],"Splines::HermiteSpline::eval::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline4evalE9real_type"],"Splines::HermiteSpline::eval_D":[36,2,1,"_CPPv4NK7Splines13HermiteSpline6eval_DE9real_type"],"Splines::HermiteSpline::eval_D::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline6eval_DE9real_type"],"Splines::HermiteSpline::eval_DD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline7eval_DDE9real_type"],"Splines::HermiteSpline::eval_DD::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline7eval_DDE9real_type"],"Splines::HermiteSpline::eval_DDD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline8eval_DDDE9real_type"],"Splines::HermiteSpline::eval_DDD::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline8eval_DDDE9real_type"],"Splines::HermiteSpline::eval_DDDD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline9eval_DDDDE9real_type"],"Splines::HermiteSpline::eval_DDDD::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline9eval_DDDDE9real_type"],"Splines::HermiteSpline::eval_DDDDD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline10eval_DDDDDE9real_type"],"Splines::HermiteSpline::eval_DDDDD::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline10eval_DDDDDE9real_type"],"Splines::HermiteSpline::id_D":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4id_DE7integer9real_type"],"Splines::HermiteSpline::id_D::ni":[36,3,1,"_CPPv4NK7Splines13HermiteSpline4id_DE7integer9real_type"],"Splines::HermiteSpline::id_D::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline4id_DE7integer9real_type"],"Splines::HermiteSpline::id_DD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline5id_DDE7integer9real_type"],"Splines::HermiteSpline::id_DD::ni":[36,3,1,"_CPPv4NK7Splines13HermiteSpline5id_DDE7integer9real_type"],"Splines::HermiteSpline::id_DD::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline5id_DDE7integer9real_type"],"Splines::HermiteSpline::id_DDD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline6id_DDDE7integer9real_type"],"Splines::HermiteSpline::id_DDD::ni":[36,3,1,"_CPPv4NK7Splines13HermiteSpline6id_DDDE7integer9real_type"],"Splines::HermiteSpline::id_DDD::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline6id_DDDE7integer9real_type"],"Splines::HermiteSpline::id_DDDD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline7id_DDDDE7integer9real_type"],"Splines::HermiteSpline::id_DDDDD":[36,2,1,"_CPPv4NK7Splines13HermiteSpline8id_DDDDDE7integer9real_type"],"Splines::HermiteSpline::id_eval":[36,2,1,"_CPPv4NK7Splines13HermiteSpline7id_evalE7integer9real_type"],"Splines::HermiteSpline::id_eval::ni":[36,3,1,"_CPPv4NK7Splines13HermiteSpline7id_evalE7integer9real_type"],"Splines::HermiteSpline::id_eval::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline7id_evalE7integer9real_type"],"Splines::HermiteSpline::info":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4infoEv"],"Splines::HermiteSpline::info::stream":[36,3,1,"_CPPv4NK7Splines13HermiteSpline4infoER12ostream_type"],"Splines::HermiteSpline::is_bounded":[36,2,1,"_CPPv4NK7Splines13HermiteSpline10is_boundedEv"],"Splines::HermiteSpline::is_closed":[36,2,1,"_CPPv4NK7Splines13HermiteSpline9is_closedEv"],"Splines::HermiteSpline::is_extended_constant":[36,2,1,"_CPPv4NK7Splines13HermiteSpline20is_extended_constantEv"],"Splines::HermiteSpline::make_bounded":[36,2,1,"_CPPv4N7Splines13HermiteSpline12make_boundedEv"],"Splines::HermiteSpline::make_closed":[36,2,1,"_CPPv4N7Splines13HermiteSpline11make_closedEv"],"Splines::HermiteSpline::make_extended_constant":[36,2,1,"_CPPv4N7Splines13HermiteSpline22make_extended_constantEv"],"Splines::HermiteSpline::make_extended_not_constant":[36,2,1,"_CPPv4N7Splines13HermiteSpline26make_extended_not_constantEv"],"Splines::HermiteSpline::make_opened":[36,2,1,"_CPPv4N7Splines13HermiteSpline11make_openedEv"],"Splines::HermiteSpline::make_unbounded":[36,2,1,"_CPPv4N7Splines13HermiteSpline14make_unboundedEv"],"Splines::HermiteSpline::name":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4nameEv"],"Splines::HermiteSpline::numPoints":[36,2,1,"_CPPv4NK7Splines13HermiteSpline9numPointsEv"],"Splines::HermiteSpline::operator()":[36,2,1,"_CPPv4NK7Splines13HermiteSplineclE9real_type"],"Splines::HermiteSpline::operator()::x":[36,3,1,"_CPPv4NK7Splines13HermiteSplineclE9real_type"],"Splines::HermiteSpline::order":[36,2,1,"_CPPv4NK7Splines13HermiteSpline5orderEv"],"Splines::HermiteSpline::pushBack":[36,2,1,"_CPPv4N7Splines13HermiteSpline8pushBackE9real_type9real_type"],"Splines::HermiteSpline::pushBack::x":[36,3,1,"_CPPv4N7Splines13HermiteSpline8pushBackE9real_type9real_type"],"Splines::HermiteSpline::pushBack::y":[36,3,1,"_CPPv4N7Splines13HermiteSpline8pushBackE9real_type9real_type"],"Splines::HermiteSpline::reserve":[36,2,1,"_CPPv4N7Splines13HermiteSpline7reserveE7integer"],"Splines::HermiteSpline::reserve::npts":[36,3,1,"_CPPv4N7Splines13HermiteSpline7reserveE7integer"],"Splines::HermiteSpline::reserve_external":[36,2,1,"_CPPv4N7Splines13HermiteSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::HermiteSpline::reserve_external::n":[36,3,1,"_CPPv4N7Splines13HermiteSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::HermiteSpline::reserve_external::p_dy":[36,3,1,"_CPPv4N7Splines13HermiteSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::HermiteSpline::reserve_external::p_x":[36,3,1,"_CPPv4N7Splines13HermiteSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::HermiteSpline::reserve_external::p_y":[36,3,1,"_CPPv4N7Splines13HermiteSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::HermiteSpline::search":[36,2,1,"_CPPv4NK7Splines13HermiteSpline6searchER9real_type"],"Splines::HermiteSpline::search::x":[36,3,1,"_CPPv4NK7Splines13HermiteSpline6searchER9real_type"],"Splines::HermiteSpline::setOrigin":[36,2,1,"_CPPv4N7Splines13HermiteSpline9setOriginE9real_type"],"Splines::HermiteSpline::setOrigin::x0":[36,3,1,"_CPPv4N7Splines13HermiteSpline9setOriginE9real_type"],"Splines::HermiteSpline::setRange":[36,2,1,"_CPPv4N7Splines13HermiteSpline8setRangeE9real_type9real_type"],"Splines::HermiteSpline::setRange::xmax":[36,3,1,"_CPPv4N7Splines13HermiteSpline8setRangeE9real_type9real_type"],"Splines::HermiteSpline::setRange::xmin":[36,3,1,"_CPPv4N7Splines13HermiteSpline8setRangeE9real_type9real_type"],"Splines::HermiteSpline::setup":[36,2,1,"_CPPv4N7Splines13HermiteSpline5setupERK16GenericContainer"],"Splines::HermiteSpline::setup::gc":[36,3,1,"_CPPv4N7Splines13HermiteSpline5setupERK16GenericContainer"],"Splines::HermiteSpline::type":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4typeEv"],"Splines::HermiteSpline::type_name":[36,2,1,"_CPPv4NK7Splines13HermiteSpline9type_nameEv"],"Splines::HermiteSpline::writeToStream":[36,2,1,"_CPPv4NK7Splines13HermiteSpline13writeToStreamER12ostream_type"],"Splines::HermiteSpline::writeToStream::s":[36,3,1,"_CPPv4NK7Splines13HermiteSpline13writeToStreamER12ostream_type"],"Splines::HermiteSpline::xBegin":[36,2,1,"_CPPv4NK7Splines13HermiteSpline6xBeginEv"],"Splines::HermiteSpline::xEnd":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4xEndEv"],"Splines::HermiteSpline::xMax":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4xMaxEv"],"Splines::HermiteSpline::xMin":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4xMinEv"],"Splines::HermiteSpline::xNode":[36,2,1,"_CPPv4NK7Splines13HermiteSpline5xNodeE7integer"],"Splines::HermiteSpline::xNode::i":[36,3,1,"_CPPv4NK7Splines13HermiteSpline5xNodeE7integer"],"Splines::HermiteSpline::yBegin":[36,2,1,"_CPPv4NK7Splines13HermiteSpline6yBeginEv"],"Splines::HermiteSpline::yEnd":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4yEndEv"],"Splines::HermiteSpline::yMax":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4yMaxEv"],"Splines::HermiteSpline::yMin":[36,2,1,"_CPPv4NK7Splines13HermiteSpline4yMinEv"],"Splines::HermiteSpline::yNode":[36,2,1,"_CPPv4NK7Splines13HermiteSpline5yNodeE7integer"],"Splines::HermiteSpline::yNode::i":[36,3,1,"_CPPv4NK7Splines13HermiteSpline5yNodeE7integer"],"Splines::HermiteSpline::y_min_max":[36,2,1,"_CPPv4NK7Splines13HermiteSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::HermiteSpline::y_min_max::i_max_pos":[36,3,1,"_CPPv4NK7Splines13HermiteSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::HermiteSpline::y_min_max::i_min_pos":[36,3,1,"_CPPv4NK7Splines13HermiteSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::HermiteSpline::y_min_max::x_max_pos":[36,3,1,"_CPPv4NK7Splines13HermiteSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::HermiteSpline::y_min_max::x_min_pos":[36,3,1,"_CPPv4NK7Splines13HermiteSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::HermiteSpline::y_min_max::y_max":[36,3,1,"_CPPv4NK7Splines13HermiteSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::HermiteSpline::y_min_max::y_min":[36,3,1,"_CPPv4NK7Splines13HermiteSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::HermiteSpline::ypNode":[36,2,1,"_CPPv4NK7Splines13HermiteSpline6ypNodeE7integer"],"Splines::HermiteSpline::ypNode::i":[36,3,1,"_CPPv4NK7Splines13HermiteSpline6ypNodeE7integer"],"Splines::HermiteSpline::~HermiteSpline":[36,2,1,"_CPPv4N7Splines13HermiteSplineD0Ev"],"Splines::LINEAR_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D11LINEAR_TYPEE"],"Splines::LinearSpline":[37,1,1,"_CPPv4N7Splines12LinearSplineE"],"Splines::LinearSpline::D":[37,2,1,"_CPPv4NK7Splines12LinearSpline1DE9real_type"],"Splines::LinearSpline::D::x":[37,3,1,"_CPPv4NK7Splines12LinearSpline1DE9real_type"],"Splines::LinearSpline::DD":[37,2,1,"_CPPv4NK7Splines12LinearSpline2DDE9real_type"],"Splines::LinearSpline::DDD":[37,2,1,"_CPPv4NK7Splines12LinearSpline3DDDE9real_type"],"Splines::LinearSpline::DDDD":[37,2,1,"_CPPv4NK7Splines12LinearSpline4DDDDE9real_type"],"Splines::LinearSpline::DDDDD":[37,2,1,"_CPPv4NK7Splines12LinearSpline5DDDDDE9real_type"],"Splines::LinearSpline::LinearSpline":[37,2,1,"_CPPv4N7Splines12LinearSpline12LinearSplineERK6string"],"Splines::LinearSpline::LinearSpline::name":[37,3,1,"_CPPv4N7Splines12LinearSpline12LinearSplineERK6string"],"Splines::LinearSpline::build":[37,2,1,"_CPPv4N7Splines12LinearSpline5buildEv"],"Splines::LinearSpline::build::gc":[37,3,1,"_CPPv4N7Splines12LinearSpline5buildERK16GenericContainer"],"Splines::LinearSpline::build::incx":[37,3,1,"_CPPv4N7Splines12LinearSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::LinearSpline::build::incy":[37,3,1,"_CPPv4N7Splines12LinearSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::LinearSpline::build::n":[37,3,1,"_CPPv4N7Splines12LinearSpline5buildEPK9real_typePK9real_type7integer"],"Splines::LinearSpline::build::x":[37,3,1,"_CPPv4N7Splines12LinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::LinearSpline::build::y":[37,3,1,"_CPPv4N7Splines12LinearSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::LinearSpline::clear":[37,2,1,"_CPPv4N7Splines12LinearSpline5clearEv"],"Splines::LinearSpline::coeffs":[37,2,1,"_CPPv4NK7Splines12LinearSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::LinearSpline::coeffs::cfs":[37,3,1,"_CPPv4NK7Splines12LinearSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::LinearSpline::coeffs::nodes":[37,3,1,"_CPPv4NK7Splines12LinearSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::LinearSpline::coeffs::transpose":[37,3,1,"_CPPv4NK7Splines12LinearSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::LinearSpline::dropBack":[37,2,1,"_CPPv4N7Splines12LinearSpline8dropBackEv"],"Splines::LinearSpline::dump":[37,2,1,"_CPPv4NK7Splines12LinearSpline4dumpER12ostream_type7integerPKc"],"Splines::LinearSpline::dump::fname":[37,3,1,"_CPPv4NK7Splines12LinearSpline4dumpEPKc7integerPKc"],"Splines::LinearSpline::dump::header":[37,3,1,"_CPPv4NK7Splines12LinearSpline4dumpER12ostream_type7integerPKc"],"Splines::LinearSpline::dump::nintervals":[37,3,1,"_CPPv4NK7Splines12LinearSpline4dumpER12ostream_type7integerPKc"],"Splines::LinearSpline::dump::s":[37,3,1,"_CPPv4NK7Splines12LinearSpline4dumpER12ostream_type7integerPKc"],"Splines::LinearSpline::eval":[37,2,1,"_CPPv4NK7Splines12LinearSpline4evalE9real_type"],"Splines::LinearSpline::eval::x":[37,3,1,"_CPPv4NK7Splines12LinearSpline4evalE9real_type"],"Splines::LinearSpline::eval_D":[37,2,1,"_CPPv4NK7Splines12LinearSpline6eval_DE9real_type"],"Splines::LinearSpline::eval_D::x":[37,3,1,"_CPPv4NK7Splines12LinearSpline6eval_DE9real_type"],"Splines::LinearSpline::eval_DD":[37,2,1,"_CPPv4NK7Splines12LinearSpline7eval_DDE9real_type"],"Splines::LinearSpline::eval_DD::x":[37,3,1,"_CPPv4NK7Splines12LinearSpline7eval_DDE9real_type"],"Splines::LinearSpline::eval_DDD":[37,2,1,"_CPPv4NK7Splines12LinearSpline8eval_DDDE9real_type"],"Splines::LinearSpline::eval_DDD::x":[37,3,1,"_CPPv4NK7Splines12LinearSpline8eval_DDDE9real_type"],"Splines::LinearSpline::eval_DDDD":[37,2,1,"_CPPv4NK7Splines12LinearSpline9eval_DDDDE9real_type"],"Splines::LinearSpline::eval_DDDD::x":[37,3,1,"_CPPv4NK7Splines12LinearSpline9eval_DDDDE9real_type"],"Splines::LinearSpline::eval_DDDDD":[37,2,1,"_CPPv4NK7Splines12LinearSpline10eval_DDDDDE9real_type"],"Splines::LinearSpline::eval_DDDDD::x":[37,3,1,"_CPPv4NK7Splines12LinearSpline10eval_DDDDDE9real_type"],"Splines::LinearSpline::id_D":[37,2,1,"_CPPv4NK7Splines12LinearSpline4id_DE7integer9real_type"],"Splines::LinearSpline::id_DD":[37,2,1,"_CPPv4NK7Splines12LinearSpline5id_DDE7integer9real_type"],"Splines::LinearSpline::id_DDD":[37,2,1,"_CPPv4NK7Splines12LinearSpline6id_DDDE7integer9real_type"],"Splines::LinearSpline::id_DDDD":[37,2,1,"_CPPv4NK7Splines12LinearSpline7id_DDDDE7integer9real_type"],"Splines::LinearSpline::id_DDDDD":[37,2,1,"_CPPv4NK7Splines12LinearSpline8id_DDDDDE7integer9real_type"],"Splines::LinearSpline::id_eval":[37,2,1,"_CPPv4NK7Splines12LinearSpline7id_evalE7integer9real_type"],"Splines::LinearSpline::id_eval::ni":[37,3,1,"_CPPv4NK7Splines12LinearSpline7id_evalE7integer9real_type"],"Splines::LinearSpline::id_eval::x":[37,3,1,"_CPPv4NK7Splines12LinearSpline7id_evalE7integer9real_type"],"Splines::LinearSpline::info":[37,2,1,"_CPPv4NK7Splines12LinearSpline4infoEv"],"Splines::LinearSpline::info::stream":[37,3,1,"_CPPv4NK7Splines12LinearSpline4infoER12ostream_type"],"Splines::LinearSpline::is_bounded":[37,2,1,"_CPPv4NK7Splines12LinearSpline10is_boundedEv"],"Splines::LinearSpline::is_closed":[37,2,1,"_CPPv4NK7Splines12LinearSpline9is_closedEv"],"Splines::LinearSpline::is_extended_constant":[37,2,1,"_CPPv4NK7Splines12LinearSpline20is_extended_constantEv"],"Splines::LinearSpline::make_bounded":[37,2,1,"_CPPv4N7Splines12LinearSpline12make_boundedEv"],"Splines::LinearSpline::make_closed":[37,2,1,"_CPPv4N7Splines12LinearSpline11make_closedEv"],"Splines::LinearSpline::make_extended_constant":[37,2,1,"_CPPv4N7Splines12LinearSpline22make_extended_constantEv"],"Splines::LinearSpline::make_extended_not_constant":[37,2,1,"_CPPv4N7Splines12LinearSpline26make_extended_not_constantEv"],"Splines::LinearSpline::make_opened":[37,2,1,"_CPPv4N7Splines12LinearSpline11make_openedEv"],"Splines::LinearSpline::make_unbounded":[37,2,1,"_CPPv4N7Splines12LinearSpline14make_unboundedEv"],"Splines::LinearSpline::name":[37,2,1,"_CPPv4NK7Splines12LinearSpline4nameEv"],"Splines::LinearSpline::numPoints":[37,2,1,"_CPPv4NK7Splines12LinearSpline9numPointsEv"],"Splines::LinearSpline::operator()":[37,2,1,"_CPPv4NK7Splines12LinearSplineclE9real_type"],"Splines::LinearSpline::operator()::x":[37,3,1,"_CPPv4NK7Splines12LinearSplineclE9real_type"],"Splines::LinearSpline::order":[37,2,1,"_CPPv4NK7Splines12LinearSpline5orderEv"],"Splines::LinearSpline::pushBack":[37,2,1,"_CPPv4N7Splines12LinearSpline8pushBackE9real_type9real_type"],"Splines::LinearSpline::pushBack::x":[37,3,1,"_CPPv4N7Splines12LinearSpline8pushBackE9real_type9real_type"],"Splines::LinearSpline::pushBack::y":[37,3,1,"_CPPv4N7Splines12LinearSpline8pushBackE9real_type9real_type"],"Splines::LinearSpline::reserve":[37,2,1,"_CPPv4N7Splines12LinearSpline7reserveE7integer"],"Splines::LinearSpline::reserve::npts":[37,3,1,"_CPPv4N7Splines12LinearSpline7reserveE7integer"],"Splines::LinearSpline::reserve_external":[37,2,1,"_CPPv4N7Splines12LinearSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::LinearSpline::reserve_external::n":[37,3,1,"_CPPv4N7Splines12LinearSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::LinearSpline::reserve_external::p_x":[37,3,1,"_CPPv4N7Splines12LinearSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::LinearSpline::reserve_external::p_y":[37,3,1,"_CPPv4N7Splines12LinearSpline16reserve_externalE7integerRP9real_typeRP9real_type"],"Splines::LinearSpline::search":[37,2,1,"_CPPv4NK7Splines12LinearSpline6searchER9real_type"],"Splines::LinearSpline::search::x":[37,3,1,"_CPPv4NK7Splines12LinearSpline6searchER9real_type"],"Splines::LinearSpline::setOrigin":[37,2,1,"_CPPv4N7Splines12LinearSpline9setOriginE9real_type"],"Splines::LinearSpline::setOrigin::x0":[37,3,1,"_CPPv4N7Splines12LinearSpline9setOriginE9real_type"],"Splines::LinearSpline::setRange":[37,2,1,"_CPPv4N7Splines12LinearSpline8setRangeE9real_type9real_type"],"Splines::LinearSpline::setRange::xmax":[37,3,1,"_CPPv4N7Splines12LinearSpline8setRangeE9real_type9real_type"],"Splines::LinearSpline::setRange::xmin":[37,3,1,"_CPPv4N7Splines12LinearSpline8setRangeE9real_type9real_type"],"Splines::LinearSpline::setup":[37,2,1,"_CPPv4N7Splines12LinearSpline5setupERK16GenericContainer"],"Splines::LinearSpline::setup::gc":[37,3,1,"_CPPv4N7Splines12LinearSpline5setupERK16GenericContainer"],"Splines::LinearSpline::type":[37,2,1,"_CPPv4NK7Splines12LinearSpline4typeEv"],"Splines::LinearSpline::type_name":[37,2,1,"_CPPv4NK7Splines12LinearSpline9type_nameEv"],"Splines::LinearSpline::writeToStream":[37,2,1,"_CPPv4NK7Splines12LinearSpline13writeToStreamER12ostream_type"],"Splines::LinearSpline::writeToStream::s":[37,3,1,"_CPPv4NK7Splines12LinearSpline13writeToStreamER12ostream_type"],"Splines::LinearSpline::xBegin":[37,2,1,"_CPPv4NK7Splines12LinearSpline6xBeginEv"],"Splines::LinearSpline::xEnd":[37,2,1,"_CPPv4NK7Splines12LinearSpline4xEndEv"],"Splines::LinearSpline::xMax":[37,2,1,"_CPPv4NK7Splines12LinearSpline4xMaxEv"],"Splines::LinearSpline::xMin":[37,2,1,"_CPPv4NK7Splines12LinearSpline4xMinEv"],"Splines::LinearSpline::xNode":[37,2,1,"_CPPv4NK7Splines12LinearSpline5xNodeE7integer"],"Splines::LinearSpline::xNode::i":[37,3,1,"_CPPv4NK7Splines12LinearSpline5xNodeE7integer"],"Splines::LinearSpline::yBegin":[37,2,1,"_CPPv4NK7Splines12LinearSpline6yBeginEv"],"Splines::LinearSpline::yEnd":[37,2,1,"_CPPv4NK7Splines12LinearSpline4yEndEv"],"Splines::LinearSpline::yMax":[37,2,1,"_CPPv4NK7Splines12LinearSpline4yMaxEv"],"Splines::LinearSpline::yMin":[37,2,1,"_CPPv4NK7Splines12LinearSpline4yMinEv"],"Splines::LinearSpline::yNode":[37,2,1,"_CPPv4NK7Splines12LinearSpline5yNodeE7integer"],"Splines::LinearSpline::yNode::i":[37,3,1,"_CPPv4NK7Splines12LinearSpline5yNodeE7integer"],"Splines::LinearSpline::y_min_max":[37,2,1,"_CPPv4NK7Splines12LinearSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::LinearSpline::y_min_max::i_max_pos":[37,3,1,"_CPPv4NK7Splines12LinearSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::LinearSpline::y_min_max::i_min_pos":[37,3,1,"_CPPv4NK7Splines12LinearSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::LinearSpline::y_min_max::x_max_pos":[37,3,1,"_CPPv4NK7Splines12LinearSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::LinearSpline::y_min_max::x_min_pos":[37,3,1,"_CPPv4NK7Splines12LinearSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::LinearSpline::y_min_max::y_max":[37,3,1,"_CPPv4NK7Splines12LinearSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::LinearSpline::y_min_max::y_min":[37,3,1,"_CPPv4NK7Splines12LinearSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::LinearSpline::~LinearSpline":[37,2,1,"_CPPv4N7Splines12LinearSplineD0Ev"],"Splines::NATURAL_BC":[54,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC10NATURAL_BCE"],"Splines::NOT_A_KNOT":[54,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC10NOT_A_KNOTE"],"Splines::PARABOLIC_RUNOUT_BC":[54,4,1,"_CPPv4N7Splines20CUBIC_SPLINE_TYPE_BC19PARABOLIC_RUNOUT_BCE"],"Splines::PCHIP_QUINTIC":[56,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13PCHIP_QUINTICE"],"Splines::PCHIP_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D10PCHIP_TYPEE"],"Splines::PchipSpline":[38,1,1,"_CPPv4N7Splines11PchipSplineE"],"Splines::PchipSpline::D":[38,2,1,"_CPPv4NK7Splines11PchipSpline1DE9real_type"],"Splines::PchipSpline::D::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline1DE9real_type"],"Splines::PchipSpline::DD":[38,2,1,"_CPPv4NK7Splines11PchipSpline2DDE9real_type"],"Splines::PchipSpline::DD::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline2DDE9real_type"],"Splines::PchipSpline::DDD":[38,2,1,"_CPPv4NK7Splines11PchipSpline3DDDE9real_type"],"Splines::PchipSpline::DDD::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline3DDDE9real_type"],"Splines::PchipSpline::DDDD":[38,2,1,"_CPPv4NK7Splines11PchipSpline4DDDDE9real_type"],"Splines::PchipSpline::DDDDD":[38,2,1,"_CPPv4NK7Splines11PchipSpline5DDDDDE9real_type"],"Splines::PchipSpline::PchipSpline":[38,2,1,"_CPPv4N7Splines11PchipSpline11PchipSplineERK6string"],"Splines::PchipSpline::PchipSpline::name":[38,3,1,"_CPPv4N7Splines11PchipSpline11PchipSplineERK6string"],"Splines::PchipSpline::build":[38,2,1,"_CPPv4N7Splines11PchipSpline5buildEv"],"Splines::PchipSpline::build::gc":[38,3,1,"_CPPv4N7Splines11PchipSpline5buildERK16GenericContainer"],"Splines::PchipSpline::build::incx":[38,3,1,"_CPPv4N7Splines11PchipSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::PchipSpline::build::incy":[38,3,1,"_CPPv4N7Splines11PchipSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::PchipSpline::build::incyp":[38,3,1,"_CPPv4N7Splines11PchipSpline5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer"],"Splines::PchipSpline::build::n":[38,3,1,"_CPPv4N7Splines11PchipSpline5buildEPK9real_typePK9real_typePK9real_type7integer"],"Splines::PchipSpline::build::x":[38,3,1,"_CPPv4N7Splines11PchipSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::PchipSpline::build::y":[38,3,1,"_CPPv4N7Splines11PchipSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::PchipSpline::build::yp":[38,3,1,"_CPPv4N7Splines11PchipSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::PchipSpline::clear":[38,2,1,"_CPPv4N7Splines11PchipSpline5clearEv"],"Splines::PchipSpline::coeffs":[38,2,1,"_CPPv4NK7Splines11PchipSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::PchipSpline::coeffs::cfs":[38,3,1,"_CPPv4NK7Splines11PchipSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::PchipSpline::coeffs::nodes":[38,3,1,"_CPPv4NK7Splines11PchipSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::PchipSpline::coeffs::transpose":[38,3,1,"_CPPv4NK7Splines11PchipSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::PchipSpline::copySpline":[38,2,1,"_CPPv4N7Splines11PchipSpline10copySplineERK15CubicSplineBase"],"Splines::PchipSpline::copySpline::S":[38,3,1,"_CPPv4N7Splines11PchipSpline10copySplineERK15CubicSplineBase"],"Splines::PchipSpline::dropBack":[38,2,1,"_CPPv4N7Splines11PchipSpline8dropBackEv"],"Splines::PchipSpline::dump":[38,2,1,"_CPPv4NK7Splines11PchipSpline4dumpER12ostream_type7integerPKc"],"Splines::PchipSpline::dump::fname":[38,3,1,"_CPPv4NK7Splines11PchipSpline4dumpEPKc7integerPKc"],"Splines::PchipSpline::dump::header":[38,3,1,"_CPPv4NK7Splines11PchipSpline4dumpER12ostream_type7integerPKc"],"Splines::PchipSpline::dump::nintervals":[38,3,1,"_CPPv4NK7Splines11PchipSpline4dumpER12ostream_type7integerPKc"],"Splines::PchipSpline::dump::s":[38,3,1,"_CPPv4NK7Splines11PchipSpline4dumpER12ostream_type7integerPKc"],"Splines::PchipSpline::eval":[38,2,1,"_CPPv4NK7Splines11PchipSpline4evalE9real_type"],"Splines::PchipSpline::eval::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline4evalE9real_type"],"Splines::PchipSpline::eval_D":[38,2,1,"_CPPv4NK7Splines11PchipSpline6eval_DE9real_type"],"Splines::PchipSpline::eval_D::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline6eval_DE9real_type"],"Splines::PchipSpline::eval_DD":[38,2,1,"_CPPv4NK7Splines11PchipSpline7eval_DDE9real_type"],"Splines::PchipSpline::eval_DD::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline7eval_DDE9real_type"],"Splines::PchipSpline::eval_DDD":[38,2,1,"_CPPv4NK7Splines11PchipSpline8eval_DDDE9real_type"],"Splines::PchipSpline::eval_DDD::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline8eval_DDDE9real_type"],"Splines::PchipSpline::eval_DDDD":[38,2,1,"_CPPv4NK7Splines11PchipSpline9eval_DDDDE9real_type"],"Splines::PchipSpline::eval_DDDD::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline9eval_DDDDE9real_type"],"Splines::PchipSpline::eval_DDDDD":[38,2,1,"_CPPv4NK7Splines11PchipSpline10eval_DDDDDE9real_type"],"Splines::PchipSpline::eval_DDDDD::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline10eval_DDDDDE9real_type"],"Splines::PchipSpline::id_D":[38,2,1,"_CPPv4NK7Splines11PchipSpline4id_DE7integer9real_type"],"Splines::PchipSpline::id_D::ni":[38,3,1,"_CPPv4NK7Splines11PchipSpline4id_DE7integer9real_type"],"Splines::PchipSpline::id_D::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline4id_DE7integer9real_type"],"Splines::PchipSpline::id_DD":[38,2,1,"_CPPv4NK7Splines11PchipSpline5id_DDE7integer9real_type"],"Splines::PchipSpline::id_DD::ni":[38,3,1,"_CPPv4NK7Splines11PchipSpline5id_DDE7integer9real_type"],"Splines::PchipSpline::id_DD::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline5id_DDE7integer9real_type"],"Splines::PchipSpline::id_DDD":[38,2,1,"_CPPv4NK7Splines11PchipSpline6id_DDDE7integer9real_type"],"Splines::PchipSpline::id_DDD::ni":[38,3,1,"_CPPv4NK7Splines11PchipSpline6id_DDDE7integer9real_type"],"Splines::PchipSpline::id_DDD::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline6id_DDDE7integer9real_type"],"Splines::PchipSpline::id_DDDD":[38,2,1,"_CPPv4NK7Splines11PchipSpline7id_DDDDE7integer9real_type"],"Splines::PchipSpline::id_DDDDD":[38,2,1,"_CPPv4NK7Splines11PchipSpline8id_DDDDDE7integer9real_type"],"Splines::PchipSpline::id_eval":[38,2,1,"_CPPv4NK7Splines11PchipSpline7id_evalE7integer9real_type"],"Splines::PchipSpline::id_eval::ni":[38,3,1,"_CPPv4NK7Splines11PchipSpline7id_evalE7integer9real_type"],"Splines::PchipSpline::id_eval::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline7id_evalE7integer9real_type"],"Splines::PchipSpline::info":[38,2,1,"_CPPv4NK7Splines11PchipSpline4infoEv"],"Splines::PchipSpline::info::stream":[38,3,1,"_CPPv4NK7Splines11PchipSpline4infoER12ostream_type"],"Splines::PchipSpline::is_bounded":[38,2,1,"_CPPv4NK7Splines11PchipSpline10is_boundedEv"],"Splines::PchipSpline::is_closed":[38,2,1,"_CPPv4NK7Splines11PchipSpline9is_closedEv"],"Splines::PchipSpline::is_extended_constant":[38,2,1,"_CPPv4NK7Splines11PchipSpline20is_extended_constantEv"],"Splines::PchipSpline::make_bounded":[38,2,1,"_CPPv4N7Splines11PchipSpline12make_boundedEv"],"Splines::PchipSpline::make_closed":[38,2,1,"_CPPv4N7Splines11PchipSpline11make_closedEv"],"Splines::PchipSpline::make_extended_constant":[38,2,1,"_CPPv4N7Splines11PchipSpline22make_extended_constantEv"],"Splines::PchipSpline::make_extended_not_constant":[38,2,1,"_CPPv4N7Splines11PchipSpline26make_extended_not_constantEv"],"Splines::PchipSpline::make_opened":[38,2,1,"_CPPv4N7Splines11PchipSpline11make_openedEv"],"Splines::PchipSpline::make_unbounded":[38,2,1,"_CPPv4N7Splines11PchipSpline14make_unboundedEv"],"Splines::PchipSpline::name":[38,2,1,"_CPPv4NK7Splines11PchipSpline4nameEv"],"Splines::PchipSpline::numPoints":[38,2,1,"_CPPv4NK7Splines11PchipSpline9numPointsEv"],"Splines::PchipSpline::operator()":[38,2,1,"_CPPv4NK7Splines11PchipSplineclE9real_type"],"Splines::PchipSpline::operator()::x":[38,3,1,"_CPPv4NK7Splines11PchipSplineclE9real_type"],"Splines::PchipSpline::order":[38,2,1,"_CPPv4NK7Splines11PchipSpline5orderEv"],"Splines::PchipSpline::pushBack":[38,2,1,"_CPPv4N7Splines11PchipSpline8pushBackE9real_type9real_type"],"Splines::PchipSpline::pushBack::x":[38,3,1,"_CPPv4N7Splines11PchipSpline8pushBackE9real_type9real_type"],"Splines::PchipSpline::pushBack::y":[38,3,1,"_CPPv4N7Splines11PchipSpline8pushBackE9real_type9real_type"],"Splines::PchipSpline::reserve":[38,2,1,"_CPPv4N7Splines11PchipSpline7reserveE7integer"],"Splines::PchipSpline::reserve::npts":[38,3,1,"_CPPv4N7Splines11PchipSpline7reserveE7integer"],"Splines::PchipSpline::reserve_external":[38,2,1,"_CPPv4N7Splines11PchipSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::PchipSpline::reserve_external::n":[38,3,1,"_CPPv4N7Splines11PchipSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::PchipSpline::reserve_external::p_dy":[38,3,1,"_CPPv4N7Splines11PchipSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::PchipSpline::reserve_external::p_x":[38,3,1,"_CPPv4N7Splines11PchipSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::PchipSpline::reserve_external::p_y":[38,3,1,"_CPPv4N7Splines11PchipSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_type"],"Splines::PchipSpline::search":[38,2,1,"_CPPv4NK7Splines11PchipSpline6searchER9real_type"],"Splines::PchipSpline::search::x":[38,3,1,"_CPPv4NK7Splines11PchipSpline6searchER9real_type"],"Splines::PchipSpline::setOrigin":[38,2,1,"_CPPv4N7Splines11PchipSpline9setOriginE9real_type"],"Splines::PchipSpline::setOrigin::x0":[38,3,1,"_CPPv4N7Splines11PchipSpline9setOriginE9real_type"],"Splines::PchipSpline::setRange":[38,2,1,"_CPPv4N7Splines11PchipSpline8setRangeE9real_type9real_type"],"Splines::PchipSpline::setRange::xmax":[38,3,1,"_CPPv4N7Splines11PchipSpline8setRangeE9real_type9real_type"],"Splines::PchipSpline::setRange::xmin":[38,3,1,"_CPPv4N7Splines11PchipSpline8setRangeE9real_type9real_type"],"Splines::PchipSpline::setup":[38,2,1,"_CPPv4N7Splines11PchipSpline5setupERK16GenericContainer"],"Splines::PchipSpline::setup::gc":[38,3,1,"_CPPv4N7Splines11PchipSpline5setupERK16GenericContainer"],"Splines::PchipSpline::type":[38,2,1,"_CPPv4NK7Splines11PchipSpline4typeEv"],"Splines::PchipSpline::type_name":[38,2,1,"_CPPv4NK7Splines11PchipSpline9type_nameEv"],"Splines::PchipSpline::writeToStream":[38,2,1,"_CPPv4NK7Splines11PchipSpline13writeToStreamER12ostream_type"],"Splines::PchipSpline::writeToStream::s":[38,3,1,"_CPPv4NK7Splines11PchipSpline13writeToStreamER12ostream_type"],"Splines::PchipSpline::xBegin":[38,2,1,"_CPPv4NK7Splines11PchipSpline6xBeginEv"],"Splines::PchipSpline::xEnd":[38,2,1,"_CPPv4NK7Splines11PchipSpline4xEndEv"],"Splines::PchipSpline::xMax":[38,2,1,"_CPPv4NK7Splines11PchipSpline4xMaxEv"],"Splines::PchipSpline::xMin":[38,2,1,"_CPPv4NK7Splines11PchipSpline4xMinEv"],"Splines::PchipSpline::xNode":[38,2,1,"_CPPv4NK7Splines11PchipSpline5xNodeE7integer"],"Splines::PchipSpline::xNode::i":[38,3,1,"_CPPv4NK7Splines11PchipSpline5xNodeE7integer"],"Splines::PchipSpline::yBegin":[38,2,1,"_CPPv4NK7Splines11PchipSpline6yBeginEv"],"Splines::PchipSpline::yEnd":[38,2,1,"_CPPv4NK7Splines11PchipSpline4yEndEv"],"Splines::PchipSpline::yMax":[38,2,1,"_CPPv4NK7Splines11PchipSpline4yMaxEv"],"Splines::PchipSpline::yMin":[38,2,1,"_CPPv4NK7Splines11PchipSpline4yMinEv"],"Splines::PchipSpline::yNode":[38,2,1,"_CPPv4NK7Splines11PchipSpline5yNodeE7integer"],"Splines::PchipSpline::yNode::i":[38,3,1,"_CPPv4NK7Splines11PchipSpline5yNodeE7integer"],"Splines::PchipSpline::y_min_max":[38,2,1,"_CPPv4NK7Splines11PchipSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::PchipSpline::y_min_max::i_max_pos":[38,3,1,"_CPPv4NK7Splines11PchipSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::PchipSpline::y_min_max::i_min_pos":[38,3,1,"_CPPv4NK7Splines11PchipSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::PchipSpline::y_min_max::x_max_pos":[38,3,1,"_CPPv4NK7Splines11PchipSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::PchipSpline::y_min_max::x_min_pos":[38,3,1,"_CPPv4NK7Splines11PchipSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::PchipSpline::y_min_max::y_max":[38,3,1,"_CPPv4NK7Splines11PchipSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::PchipSpline::y_min_max::y_min":[38,3,1,"_CPPv4NK7Splines11PchipSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::PchipSpline::ypNode":[38,2,1,"_CPPv4NK7Splines11PchipSpline6ypNodeE7integer"],"Splines::PchipSpline::ypNode::i":[38,3,1,"_CPPv4NK7Splines11PchipSpline6ypNodeE7integer"],"Splines::PchipSpline::~PchipSpline":[38,2,1,"_CPPv4N7Splines11PchipSplineD0Ev"],"Splines::Pchip_build":[120,2,1,"_CPPv4N7Splines11Pchip_buildEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build::X":[120,3,1,"_CPPv4N7Splines11Pchip_buildEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build::Y":[120,3,1,"_CPPv4N7Splines11Pchip_buildEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build::Yp":[120,3,1,"_CPPv4N7Splines11Pchip_buildEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build::npts":[120,3,1,"_CPPv4N7Splines11Pchip_buildEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build_new":[101,2,1,"_CPPv4N7Splines15Pchip_build_newEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build_new::X":[101,3,1,"_CPPv4N7Splines15Pchip_build_newEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build_new::Y":[101,3,1,"_CPPv4N7Splines15Pchip_build_newEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build_new::Yp":[101,3,1,"_CPPv4N7Splines15Pchip_build_newEPK9real_typePK9real_typeP9real_type7integer"],"Splines::Pchip_build_new::npts":[101,3,1,"_CPPv4N7Splines15Pchip_build_newEPK9real_typePK9real_typeP9real_type7integer"],"Splines::QUINTIC_SPLINE_TYPE":[56,5,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPEE"],"Splines::QUINTIC_SPLINE_TYPE::AKIMA_QUINTIC":[56,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13AKIMA_QUINTICE"],"Splines::QUINTIC_SPLINE_TYPE::BESSEL_QUINTIC":[56,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE14BESSEL_QUINTICE"],"Splines::QUINTIC_SPLINE_TYPE::CUBIC_QUINTIC":[56,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13CUBIC_QUINTICE"],"Splines::QUINTIC_SPLINE_TYPE::PCHIP_QUINTIC":[56,4,1,"_CPPv4N7Splines19QUINTIC_SPLINE_TYPE13PCHIP_QUINTICE"],"Splines::QUINTIC_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D12QUINTIC_TYPEE"],"Splines::QuinticSpline":[39,1,1,"_CPPv4N7Splines13QuinticSplineE"],"Splines::QuinticSpline::D":[39,2,1,"_CPPv4NK7Splines13QuinticSpline1DE9real_type"],"Splines::QuinticSpline::D::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline1DE9real_type"],"Splines::QuinticSpline::DD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline2DDE9real_type"],"Splines::QuinticSpline::DD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline2DDE9real_type"],"Splines::QuinticSpline::DDD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline3DDDE9real_type"],"Splines::QuinticSpline::DDD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline3DDDE9real_type"],"Splines::QuinticSpline::DDDD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4DDDDE9real_type"],"Splines::QuinticSpline::DDDD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline4DDDDE9real_type"],"Splines::QuinticSpline::DDDDD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline5DDDDDE9real_type"],"Splines::QuinticSpline::DDDDD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline5DDDDDE9real_type"],"Splines::QuinticSpline::QuinticSpline":[39,2,1,"_CPPv4N7Splines13QuinticSpline13QuinticSplineERK6string"],"Splines::QuinticSpline::QuinticSpline::name":[39,3,1,"_CPPv4N7Splines13QuinticSpline13QuinticSplineERK6string"],"Splines::QuinticSpline::build":[39,2,1,"_CPPv4N7Splines13QuinticSpline5buildEv"],"Splines::QuinticSpline::build::gc":[39,3,1,"_CPPv4N7Splines13QuinticSpline5buildERK16GenericContainer"],"Splines::QuinticSpline::build::incx":[39,3,1,"_CPPv4N7Splines13QuinticSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::QuinticSpline::build::incy":[39,3,1,"_CPPv4N7Splines13QuinticSpline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::QuinticSpline::build::n":[39,3,1,"_CPPv4N7Splines13QuinticSpline5buildEPK9real_typePK9real_type7integer"],"Splines::QuinticSpline::build::x":[39,3,1,"_CPPv4N7Splines13QuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::QuinticSpline::build::y":[39,3,1,"_CPPv4N7Splines13QuinticSpline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::QuinticSpline::clear":[39,2,1,"_CPPv4N7Splines13QuinticSpline5clearEv"],"Splines::QuinticSpline::coeffs":[39,2,1,"_CPPv4NK7Splines13QuinticSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSpline::coeffs::cfs":[39,3,1,"_CPPv4NK7Splines13QuinticSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSpline::coeffs::nodes":[39,3,1,"_CPPv4NK7Splines13QuinticSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSpline::coeffs::transpose":[39,3,1,"_CPPv4NK7Splines13QuinticSpline6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSpline::copySpline":[39,2,1,"_CPPv4N7Splines13QuinticSpline10copySplineERK17QuinticSplineBase"],"Splines::QuinticSpline::copySpline::S":[39,3,1,"_CPPv4N7Splines13QuinticSpline10copySplineERK17QuinticSplineBase"],"Splines::QuinticSpline::dropBack":[39,2,1,"_CPPv4N7Splines13QuinticSpline8dropBackEv"],"Splines::QuinticSpline::dump":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4dumpER12ostream_type7integerPKc"],"Splines::QuinticSpline::dump::fname":[39,3,1,"_CPPv4NK7Splines13QuinticSpline4dumpEPKc7integerPKc"],"Splines::QuinticSpline::dump::header":[39,3,1,"_CPPv4NK7Splines13QuinticSpline4dumpER12ostream_type7integerPKc"],"Splines::QuinticSpline::dump::nintervals":[39,3,1,"_CPPv4NK7Splines13QuinticSpline4dumpER12ostream_type7integerPKc"],"Splines::QuinticSpline::dump::s":[39,3,1,"_CPPv4NK7Splines13QuinticSpline4dumpER12ostream_type7integerPKc"],"Splines::QuinticSpline::eval":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4evalE9real_type"],"Splines::QuinticSpline::eval::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline4evalE9real_type"],"Splines::QuinticSpline::eval_D":[39,2,1,"_CPPv4NK7Splines13QuinticSpline6eval_DE9real_type"],"Splines::QuinticSpline::eval_D::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline6eval_DE9real_type"],"Splines::QuinticSpline::eval_DD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline7eval_DDE9real_type"],"Splines::QuinticSpline::eval_DD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline7eval_DDE9real_type"],"Splines::QuinticSpline::eval_DDD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline8eval_DDDE9real_type"],"Splines::QuinticSpline::eval_DDD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline8eval_DDDE9real_type"],"Splines::QuinticSpline::eval_DDDD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline9eval_DDDDE9real_type"],"Splines::QuinticSpline::eval_DDDD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline9eval_DDDDE9real_type"],"Splines::QuinticSpline::eval_DDDDD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline10eval_DDDDDE9real_type"],"Splines::QuinticSpline::eval_DDDDD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline10eval_DDDDDE9real_type"],"Splines::QuinticSpline::id_D":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4id_DE7integer9real_type"],"Splines::QuinticSpline::id_D::ni":[39,3,1,"_CPPv4NK7Splines13QuinticSpline4id_DE7integer9real_type"],"Splines::QuinticSpline::id_D::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline4id_DE7integer9real_type"],"Splines::QuinticSpline::id_DD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline5id_DDE7integer9real_type"],"Splines::QuinticSpline::id_DD::ni":[39,3,1,"_CPPv4NK7Splines13QuinticSpline5id_DDE7integer9real_type"],"Splines::QuinticSpline::id_DD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline5id_DDE7integer9real_type"],"Splines::QuinticSpline::id_DDD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline6id_DDDE7integer9real_type"],"Splines::QuinticSpline::id_DDD::ni":[39,3,1,"_CPPv4NK7Splines13QuinticSpline6id_DDDE7integer9real_type"],"Splines::QuinticSpline::id_DDD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline6id_DDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline7id_DDDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDD::ni":[39,3,1,"_CPPv4NK7Splines13QuinticSpline7id_DDDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline7id_DDDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDDD":[39,2,1,"_CPPv4NK7Splines13QuinticSpline8id_DDDDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDDD::ni":[39,3,1,"_CPPv4NK7Splines13QuinticSpline8id_DDDDDE7integer9real_type"],"Splines::QuinticSpline::id_DDDDD::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline8id_DDDDDE7integer9real_type"],"Splines::QuinticSpline::id_eval":[39,2,1,"_CPPv4NK7Splines13QuinticSpline7id_evalE7integer9real_type"],"Splines::QuinticSpline::id_eval::ni":[39,3,1,"_CPPv4NK7Splines13QuinticSpline7id_evalE7integer9real_type"],"Splines::QuinticSpline::id_eval::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline7id_evalE7integer9real_type"],"Splines::QuinticSpline::info":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4infoEv"],"Splines::QuinticSpline::info::stream":[39,3,1,"_CPPv4NK7Splines13QuinticSpline4infoER12ostream_type"],"Splines::QuinticSpline::is_bounded":[39,2,1,"_CPPv4NK7Splines13QuinticSpline10is_boundedEv"],"Splines::QuinticSpline::is_closed":[39,2,1,"_CPPv4NK7Splines13QuinticSpline9is_closedEv"],"Splines::QuinticSpline::is_extended_constant":[39,2,1,"_CPPv4NK7Splines13QuinticSpline20is_extended_constantEv"],"Splines::QuinticSpline::make_bounded":[39,2,1,"_CPPv4N7Splines13QuinticSpline12make_boundedEv"],"Splines::QuinticSpline::make_closed":[39,2,1,"_CPPv4N7Splines13QuinticSpline11make_closedEv"],"Splines::QuinticSpline::make_extended_constant":[39,2,1,"_CPPv4N7Splines13QuinticSpline22make_extended_constantEv"],"Splines::QuinticSpline::make_extended_not_constant":[39,2,1,"_CPPv4N7Splines13QuinticSpline26make_extended_not_constantEv"],"Splines::QuinticSpline::make_opened":[39,2,1,"_CPPv4N7Splines13QuinticSpline11make_openedEv"],"Splines::QuinticSpline::make_unbounded":[39,2,1,"_CPPv4N7Splines13QuinticSpline14make_unboundedEv"],"Splines::QuinticSpline::name":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4nameEv"],"Splines::QuinticSpline::numPoints":[39,2,1,"_CPPv4NK7Splines13QuinticSpline9numPointsEv"],"Splines::QuinticSpline::operator()":[39,2,1,"_CPPv4NK7Splines13QuinticSplineclE9real_type"],"Splines::QuinticSpline::operator()::x":[39,3,1,"_CPPv4NK7Splines13QuinticSplineclE9real_type"],"Splines::QuinticSpline::order":[39,2,1,"_CPPv4NK7Splines13QuinticSpline5orderEv"],"Splines::QuinticSpline::pushBack":[39,2,1,"_CPPv4N7Splines13QuinticSpline8pushBackE9real_type9real_type"],"Splines::QuinticSpline::pushBack::x":[39,3,1,"_CPPv4N7Splines13QuinticSpline8pushBackE9real_type9real_type"],"Splines::QuinticSpline::pushBack::y":[39,3,1,"_CPPv4N7Splines13QuinticSpline8pushBackE9real_type9real_type"],"Splines::QuinticSpline::reserve":[39,2,1,"_CPPv4N7Splines13QuinticSpline7reserveE7integer"],"Splines::QuinticSpline::reserve::npts":[39,3,1,"_CPPv4N7Splines13QuinticSpline7reserveE7integer"],"Splines::QuinticSpline::reserve_external":[39,2,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::reserve_external::n":[39,3,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::reserve_external::p_Yp":[39,3,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::reserve_external::p_Ypp":[39,3,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::reserve_external::p_x":[39,3,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::reserve_external::p_y":[39,3,1,"_CPPv4N7Splines13QuinticSpline16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSpline::search":[39,2,1,"_CPPv4NK7Splines13QuinticSpline6searchER9real_type"],"Splines::QuinticSpline::search::x":[39,3,1,"_CPPv4NK7Splines13QuinticSpline6searchER9real_type"],"Splines::QuinticSpline::setOrigin":[39,2,1,"_CPPv4N7Splines13QuinticSpline9setOriginE9real_type"],"Splines::QuinticSpline::setOrigin::x0":[39,3,1,"_CPPv4N7Splines13QuinticSpline9setOriginE9real_type"],"Splines::QuinticSpline::setQuinticType":[39,2,1,"_CPPv4N7Splines13QuinticSpline14setQuinticTypeE19QUINTIC_SPLINE_TYPE"],"Splines::QuinticSpline::setQuinticType::qt":[39,3,1,"_CPPv4N7Splines13QuinticSpline14setQuinticTypeE19QUINTIC_SPLINE_TYPE"],"Splines::QuinticSpline::setRange":[39,2,1,"_CPPv4N7Splines13QuinticSpline8setRangeE9real_type9real_type"],"Splines::QuinticSpline::setRange::xmax":[39,3,1,"_CPPv4N7Splines13QuinticSpline8setRangeE9real_type9real_type"],"Splines::QuinticSpline::setRange::xmin":[39,3,1,"_CPPv4N7Splines13QuinticSpline8setRangeE9real_type9real_type"],"Splines::QuinticSpline::setup":[39,2,1,"_CPPv4N7Splines13QuinticSpline5setupERK16GenericContainer"],"Splines::QuinticSpline::setup::gc":[39,3,1,"_CPPv4N7Splines13QuinticSpline5setupERK16GenericContainer"],"Splines::QuinticSpline::type":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4typeEv"],"Splines::QuinticSpline::type_name":[39,2,1,"_CPPv4NK7Splines13QuinticSpline9type_nameEv"],"Splines::QuinticSpline::writeToStream":[39,2,1,"_CPPv4NK7Splines13QuinticSpline13writeToStreamER12ostream_type"],"Splines::QuinticSpline::writeToStream::s":[39,3,1,"_CPPv4NK7Splines13QuinticSpline13writeToStreamER12ostream_type"],"Splines::QuinticSpline::xBegin":[39,2,1,"_CPPv4NK7Splines13QuinticSpline6xBeginEv"],"Splines::QuinticSpline::xEnd":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4xEndEv"],"Splines::QuinticSpline::xMax":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4xMaxEv"],"Splines::QuinticSpline::xMin":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4xMinEv"],"Splines::QuinticSpline::xNode":[39,2,1,"_CPPv4NK7Splines13QuinticSpline5xNodeE7integer"],"Splines::QuinticSpline::xNode::i":[39,3,1,"_CPPv4NK7Splines13QuinticSpline5xNodeE7integer"],"Splines::QuinticSpline::yBegin":[39,2,1,"_CPPv4NK7Splines13QuinticSpline6yBeginEv"],"Splines::QuinticSpline::yEnd":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4yEndEv"],"Splines::QuinticSpline::yMax":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4yMaxEv"],"Splines::QuinticSpline::yMin":[39,2,1,"_CPPv4NK7Splines13QuinticSpline4yMinEv"],"Splines::QuinticSpline::yNode":[39,2,1,"_CPPv4NK7Splines13QuinticSpline5yNodeE7integer"],"Splines::QuinticSpline::yNode::i":[39,3,1,"_CPPv4NK7Splines13QuinticSpline5yNodeE7integer"],"Splines::QuinticSpline::y_min_max":[39,2,1,"_CPPv4NK7Splines13QuinticSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSpline::y_min_max::i_max_pos":[39,3,1,"_CPPv4NK7Splines13QuinticSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSpline::y_min_max::i_min_pos":[39,3,1,"_CPPv4NK7Splines13QuinticSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSpline::y_min_max::x_max_pos":[39,3,1,"_CPPv4NK7Splines13QuinticSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSpline::y_min_max::x_min_pos":[39,3,1,"_CPPv4NK7Splines13QuinticSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSpline::y_min_max::y_max":[39,3,1,"_CPPv4NK7Splines13QuinticSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSpline::y_min_max::y_min":[39,3,1,"_CPPv4NK7Splines13QuinticSpline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSpline::ypNode":[39,2,1,"_CPPv4NK7Splines13QuinticSpline6ypNodeE7integer"],"Splines::QuinticSpline::ypNode::i":[39,3,1,"_CPPv4NK7Splines13QuinticSpline6ypNodeE7integer"],"Splines::QuinticSpline::yppNode":[39,2,1,"_CPPv4NK7Splines13QuinticSpline7yppNodeE7integer"],"Splines::QuinticSpline::yppNode::i":[39,3,1,"_CPPv4NK7Splines13QuinticSpline7yppNodeE7integer"],"Splines::QuinticSpline::~QuinticSpline":[39,2,1,"_CPPv4N7Splines13QuinticSplineD0Ev"],"Splines::QuinticSplineBase":[40,1,1,"_CPPv4N7Splines17QuinticSplineBaseE"],"Splines::QuinticSplineBase::D":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase1DE9real_type"],"Splines::QuinticSplineBase::D::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase1DE9real_type"],"Splines::QuinticSplineBase::DD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase2DDE9real_type"],"Splines::QuinticSplineBase::DD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase2DDE9real_type"],"Splines::QuinticSplineBase::DDD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase3DDDE9real_type"],"Splines::QuinticSplineBase::DDD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase3DDDE9real_type"],"Splines::QuinticSplineBase::DDDD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4DDDDE9real_type"],"Splines::QuinticSplineBase::DDDD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase4DDDDE9real_type"],"Splines::QuinticSplineBase::DDDDD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase5DDDDDE9real_type"],"Splines::QuinticSplineBase::DDDDD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase5DDDDDE9real_type"],"Splines::QuinticSplineBase::QuinticSplineBase":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase17QuinticSplineBaseERK6string"],"Splines::QuinticSplineBase::QuinticSplineBase::name":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase17QuinticSplineBaseERK6string"],"Splines::QuinticSplineBase::build":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase5buildEv"],"Splines::QuinticSplineBase::build::gc":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildERK16GenericContainer"],"Splines::QuinticSplineBase::build::incx":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::QuinticSplineBase::build::incy":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::QuinticSplineBase::build::n":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildEPK9real_typePK9real_type7integer"],"Splines::QuinticSplineBase::build::x":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::QuinticSplineBase::build::y":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::QuinticSplineBase::clear":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase5clearEv"],"Splines::QuinticSplineBase::coeffs":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSplineBase::coeffs::cfs":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSplineBase::coeffs::nodes":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSplineBase::coeffs::transpose":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase6coeffsEPC9real_typePC9real_typeb"],"Splines::QuinticSplineBase::copySpline":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase10copySplineERK17QuinticSplineBase"],"Splines::QuinticSplineBase::copySpline::S":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase10copySplineERK17QuinticSplineBase"],"Splines::QuinticSplineBase::dropBack":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase8dropBackEv"],"Splines::QuinticSplineBase::dump":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4dumpER12ostream_type7integerPKc"],"Splines::QuinticSplineBase::dump::fname":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase4dumpEPKc7integerPKc"],"Splines::QuinticSplineBase::dump::header":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase4dumpER12ostream_type7integerPKc"],"Splines::QuinticSplineBase::dump::nintervals":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase4dumpER12ostream_type7integerPKc"],"Splines::QuinticSplineBase::dump::s":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase4dumpER12ostream_type7integerPKc"],"Splines::QuinticSplineBase::eval":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4evalE9real_type"],"Splines::QuinticSplineBase::eval::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase4evalE9real_type"],"Splines::QuinticSplineBase::eval_D":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase6eval_DE9real_type"],"Splines::QuinticSplineBase::eval_D::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase6eval_DE9real_type"],"Splines::QuinticSplineBase::eval_DD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase7eval_DDE9real_type"],"Splines::QuinticSplineBase::eval_DD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase7eval_DDE9real_type"],"Splines::QuinticSplineBase::eval_DDD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase8eval_DDDE9real_type"],"Splines::QuinticSplineBase::eval_DDD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase8eval_DDDE9real_type"],"Splines::QuinticSplineBase::eval_DDDD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase9eval_DDDDE9real_type"],"Splines::QuinticSplineBase::eval_DDDD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase9eval_DDDDE9real_type"],"Splines::QuinticSplineBase::eval_DDDDD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase10eval_DDDDDE9real_type"],"Splines::QuinticSplineBase::eval_DDDDD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase10eval_DDDDDE9real_type"],"Splines::QuinticSplineBase::id_D":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4id_DE7integer9real_type"],"Splines::QuinticSplineBase::id_D::ni":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase4id_DE7integer9real_type"],"Splines::QuinticSplineBase::id_D::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase4id_DE7integer9real_type"],"Splines::QuinticSplineBase::id_DD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase5id_DDE7integer9real_type"],"Splines::QuinticSplineBase::id_DD::ni":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase5id_DDE7integer9real_type"],"Splines::QuinticSplineBase::id_DD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase5id_DDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase6id_DDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDD::ni":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase6id_DDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase6id_DDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase7id_DDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDD::ni":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase7id_DDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase7id_DDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDDD":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase8id_DDDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDDD::ni":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase8id_DDDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_DDDDD::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase8id_DDDDDE7integer9real_type"],"Splines::QuinticSplineBase::id_eval":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase7id_evalE7integer9real_type"],"Splines::QuinticSplineBase::id_eval::ni":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase7id_evalE7integer9real_type"],"Splines::QuinticSplineBase::id_eval::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase7id_evalE7integer9real_type"],"Splines::QuinticSplineBase::info":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4infoEv"],"Splines::QuinticSplineBase::info::stream":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase4infoER12ostream_type"],"Splines::QuinticSplineBase::is_bounded":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase10is_boundedEv"],"Splines::QuinticSplineBase::is_closed":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase9is_closedEv"],"Splines::QuinticSplineBase::is_extended_constant":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase20is_extended_constantEv"],"Splines::QuinticSplineBase::make_bounded":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase12make_boundedEv"],"Splines::QuinticSplineBase::make_closed":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase11make_closedEv"],"Splines::QuinticSplineBase::make_extended_constant":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase22make_extended_constantEv"],"Splines::QuinticSplineBase::make_extended_not_constant":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase26make_extended_not_constantEv"],"Splines::QuinticSplineBase::make_opened":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase11make_openedEv"],"Splines::QuinticSplineBase::make_unbounded":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase14make_unboundedEv"],"Splines::QuinticSplineBase::name":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4nameEv"],"Splines::QuinticSplineBase::numPoints":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase9numPointsEv"],"Splines::QuinticSplineBase::operator()":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBaseclE9real_type"],"Splines::QuinticSplineBase::operator()::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBaseclE9real_type"],"Splines::QuinticSplineBase::order":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase5orderEv"],"Splines::QuinticSplineBase::pushBack":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase8pushBackE9real_type9real_type"],"Splines::QuinticSplineBase::pushBack::x":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase8pushBackE9real_type9real_type"],"Splines::QuinticSplineBase::pushBack::y":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase8pushBackE9real_type9real_type"],"Splines::QuinticSplineBase::reserve":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase7reserveE7integer"],"Splines::QuinticSplineBase::reserve::npts":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase7reserveE7integer"],"Splines::QuinticSplineBase::reserve_external":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::reserve_external::n":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::reserve_external::p_Yp":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::reserve_external::p_Ypp":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::reserve_external::p_x":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::reserve_external::p_y":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase16reserve_externalE7integerRP9real_typeRP9real_typeRP9real_typeRP9real_type"],"Splines::QuinticSplineBase::search":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase6searchER9real_type"],"Splines::QuinticSplineBase::search::x":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase6searchER9real_type"],"Splines::QuinticSplineBase::setOrigin":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase9setOriginE9real_type"],"Splines::QuinticSplineBase::setOrigin::x0":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase9setOriginE9real_type"],"Splines::QuinticSplineBase::setRange":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase8setRangeE9real_type9real_type"],"Splines::QuinticSplineBase::setRange::xmax":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase8setRangeE9real_type9real_type"],"Splines::QuinticSplineBase::setRange::xmin":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase8setRangeE9real_type9real_type"],"Splines::QuinticSplineBase::setup":[40,2,1,"_CPPv4N7Splines17QuinticSplineBase5setupERK16GenericContainer"],"Splines::QuinticSplineBase::setup::gc":[40,3,1,"_CPPv4N7Splines17QuinticSplineBase5setupERK16GenericContainer"],"Splines::QuinticSplineBase::type":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4typeEv"],"Splines::QuinticSplineBase::type_name":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase9type_nameEv"],"Splines::QuinticSplineBase::writeToStream":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase13writeToStreamER12ostream_type"],"Splines::QuinticSplineBase::writeToStream::s":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase13writeToStreamER12ostream_type"],"Splines::QuinticSplineBase::xBegin":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase6xBeginEv"],"Splines::QuinticSplineBase::xEnd":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4xEndEv"],"Splines::QuinticSplineBase::xMax":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4xMaxEv"],"Splines::QuinticSplineBase::xMin":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4xMinEv"],"Splines::QuinticSplineBase::xNode":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase5xNodeE7integer"],"Splines::QuinticSplineBase::xNode::i":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase5xNodeE7integer"],"Splines::QuinticSplineBase::yBegin":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase6yBeginEv"],"Splines::QuinticSplineBase::yEnd":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4yEndEv"],"Splines::QuinticSplineBase::yMax":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4yMaxEv"],"Splines::QuinticSplineBase::yMin":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase4yMinEv"],"Splines::QuinticSplineBase::yNode":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase5yNodeE7integer"],"Splines::QuinticSplineBase::yNode::i":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase5yNodeE7integer"],"Splines::QuinticSplineBase::y_min_max":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSplineBase::y_min_max::i_max_pos":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSplineBase::y_min_max::i_min_pos":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSplineBase::y_min_max::x_max_pos":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSplineBase::y_min_max::x_min_pos":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSplineBase::y_min_max::y_max":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSplineBase::y_min_max::y_min":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::QuinticSplineBase::ypNode":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase6ypNodeE7integer"],"Splines::QuinticSplineBase::ypNode::i":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase6ypNodeE7integer"],"Splines::QuinticSplineBase::yppNode":[40,2,1,"_CPPv4NK7Splines17QuinticSplineBase7yppNodeE7integer"],"Splines::QuinticSplineBase::yppNode::i":[40,3,1,"_CPPv4NK7Splines17QuinticSplineBase7yppNodeE7integer"],"Splines::QuinticSplineBase::~QuinticSplineBase":[40,2,1,"_CPPv4N7Splines17QuinticSplineBaseD0Ev"],"Splines::REGION_ABCDEM":[53,5,1,"_CPPv4N7Splines13REGION_ABCDEME"],"Splines::REGION_ABCDEM::region_A":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_AE"],"Splines::REGION_ABCDEM::region_B":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_BE"],"Splines::REGION_ABCDEM::region_C":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_CE"],"Splines::REGION_ABCDEM::region_D":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_DE"],"Splines::REGION_ABCDEM::region_E":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_EE"],"Splines::REGION_ABCDEM::region_M":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_ME"],"Splines::SPLINE_SET_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D15SPLINE_SET_TYPEE"],"Splines::SPLINE_VEC_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D15SPLINE_VEC_TYPEE"],"Splines::Spline":[41,1,1,"_CPPv4N7Splines6SplineE"],"Splines::Spline1D":[44,1,1,"_CPPv4N7Splines8Spline1DE"],"Splines::Spline1D::D":[44,2,1,"_CPPv4NK7Splines8Spline1D1DE9real_type"],"Splines::Spline1D::D::x":[44,3,1,"_CPPv4NK7Splines8Spline1D1DE9real_type"],"Splines::Spline1D::DD":[44,2,1,"_CPPv4NK7Splines8Spline1D2DDE9real_type"],"Splines::Spline1D::DD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D2DDE9real_type"],"Splines::Spline1D::DDD":[44,2,1,"_CPPv4NK7Splines8Spline1D3DDDE9real_type"],"Splines::Spline1D::DDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D3DDDE9real_type"],"Splines::Spline1D::DDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D4DDDDE9real_type"],"Splines::Spline1D::DDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D4DDDDE9real_type"],"Splines::Spline1D::DDDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D5DDDDDE9real_type"],"Splines::Spline1D::DDDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D5DDDDDE9real_type"],"Splines::Spline1D::Spline1D":[44,2,1,"_CPPv4N7Splines8Spline1D8Spline1DERKNSt6stringE"],"Splines::Spline1D::Spline1D::n":[44,3,1,"_CPPv4N7Splines8Spline1D8Spline1DERKNSt6stringE"],"Splines::Spline1D::build":[44,2,1,"_CPPv4N7Splines8Spline1D5buildEv"],"Splines::Spline1D::build::gc":[44,3,1,"_CPPv4N7Splines8Spline1D5buildERK16GenericContainer"],"Splines::Spline1D::build::incx":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DPK9real_type7integerPK9real_type7integer7integer"],"Splines::Spline1D::build::incy":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DPK9real_type7integerPK9real_type7integer7integer"],"Splines::Spline1D::build::n":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DPK9real_typePK9real_type7integer"],"Splines::Spline1D::build::tp":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DRK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::Spline1D::build::x":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DRK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::Spline1D::build::y":[44,3,1,"_CPPv4N7Splines8Spline1D5buildE12SplineType1DRK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::Spline1D::clear":[44,2,1,"_CPPv4N7Splines8Spline1D5clearEv"],"Splines::Spline1D::coeffs":[44,2,1,"_CPPv4NK7Splines8Spline1D6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline1D::coeffs::cfs":[44,3,1,"_CPPv4NK7Splines8Spline1D6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline1D::coeffs::nodes":[44,3,1,"_CPPv4NK7Splines8Spline1D6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline1D::coeffs::transpose":[44,3,1,"_CPPv4NK7Splines8Spline1D6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline1D::dropBack":[44,2,1,"_CPPv4N7Splines8Spline1D8dropBackEv"],"Splines::Spline1D::dump":[44,2,1,"_CPPv4NK7Splines8Spline1D4dumpER12ostream_type7integerPKc"],"Splines::Spline1D::dump::fname":[44,3,1,"_CPPv4NK7Splines8Spline1D4dumpEPKc7integerPKc"],"Splines::Spline1D::dump::header":[44,3,1,"_CPPv4NK7Splines8Spline1D4dumpER12ostream_type7integerPKc"],"Splines::Spline1D::dump::nintervals":[44,3,1,"_CPPv4NK7Splines8Spline1D4dumpER12ostream_type7integerPKc"],"Splines::Spline1D::dump::s":[44,3,1,"_CPPv4NK7Splines8Spline1D4dumpER12ostream_type7integerPKc"],"Splines::Spline1D::eval":[44,2,1,"_CPPv4NK7Splines8Spline1D4evalE9real_type"],"Splines::Spline1D::eval::x":[44,3,1,"_CPPv4NK7Splines8Spline1D4evalE9real_type"],"Splines::Spline1D::eval_D":[44,2,1,"_CPPv4NK7Splines8Spline1D6eval_DE9real_type"],"Splines::Spline1D::eval_D::x":[44,3,1,"_CPPv4NK7Splines8Spline1D6eval_DE9real_type"],"Splines::Spline1D::eval_DD":[44,2,1,"_CPPv4NK7Splines8Spline1D7eval_DDE9real_type"],"Splines::Spline1D::eval_DD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D7eval_DDE9real_type"],"Splines::Spline1D::eval_DDD":[44,2,1,"_CPPv4NK7Splines8Spline1D8eval_DDDE9real_type"],"Splines::Spline1D::eval_DDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D8eval_DDDE9real_type"],"Splines::Spline1D::eval_DDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D9eval_DDDDE9real_type"],"Splines::Spline1D::eval_DDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D9eval_DDDDE9real_type"],"Splines::Spline1D::eval_DDDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D10eval_DDDDDE9real_type"],"Splines::Spline1D::eval_DDDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D10eval_DDDDDE9real_type"],"Splines::Spline1D::id_D":[44,2,1,"_CPPv4NK7Splines8Spline1D4id_DE7integer9real_type"],"Splines::Spline1D::id_D::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D4id_DE7integer9real_type"],"Splines::Spline1D::id_D::x":[44,3,1,"_CPPv4NK7Splines8Spline1D4id_DE7integer9real_type"],"Splines::Spline1D::id_DD":[44,2,1,"_CPPv4NK7Splines8Spline1D5id_DDE7integer9real_type"],"Splines::Spline1D::id_DD::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D5id_DDE7integer9real_type"],"Splines::Spline1D::id_DD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D5id_DDE7integer9real_type"],"Splines::Spline1D::id_DDD":[44,2,1,"_CPPv4NK7Splines8Spline1D6id_DDDE7integer9real_type"],"Splines::Spline1D::id_DDD::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D6id_DDDE7integer9real_type"],"Splines::Spline1D::id_DDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D6id_DDDE7integer9real_type"],"Splines::Spline1D::id_DDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D7id_DDDDE7integer9real_type"],"Splines::Spline1D::id_DDDD::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D7id_DDDDE7integer9real_type"],"Splines::Spline1D::id_DDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D7id_DDDDE7integer9real_type"],"Splines::Spline1D::id_DDDDD":[44,2,1,"_CPPv4NK7Splines8Spline1D8id_DDDDDE7integer9real_type"],"Splines::Spline1D::id_DDDDD::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D8id_DDDDDE7integer9real_type"],"Splines::Spline1D::id_DDDDD::x":[44,3,1,"_CPPv4NK7Splines8Spline1D8id_DDDDDE7integer9real_type"],"Splines::Spline1D::id_eval":[44,2,1,"_CPPv4NK7Splines8Spline1D7id_evalE7integer9real_type"],"Splines::Spline1D::id_eval::ni":[44,3,1,"_CPPv4NK7Splines8Spline1D7id_evalE7integer9real_type"],"Splines::Spline1D::id_eval::x":[44,3,1,"_CPPv4NK7Splines8Spline1D7id_evalE7integer9real_type"],"Splines::Spline1D::info":[44,2,1,"_CPPv4NK7Splines8Spline1D4infoEv"],"Splines::Spline1D::info::stream":[44,3,1,"_CPPv4NK7Splines8Spline1D4infoER12ostream_type"],"Splines::Spline1D::is_bounded":[44,2,1,"_CPPv4NK7Splines8Spline1D10is_boundedEv"],"Splines::Spline1D::is_closed":[44,2,1,"_CPPv4NK7Splines8Spline1D9is_closedEv"],"Splines::Spline1D::make_bounded":[44,2,1,"_CPPv4N7Splines8Spline1D12make_boundedEv"],"Splines::Spline1D::make_closed":[44,2,1,"_CPPv4N7Splines8Spline1D11make_closedEv"],"Splines::Spline1D::make_opened":[44,2,1,"_CPPv4N7Splines8Spline1D11make_openedEv"],"Splines::Spline1D::make_unbounded":[44,2,1,"_CPPv4N7Splines8Spline1D14make_unboundedEv"],"Splines::Spline1D::name":[44,2,1,"_CPPv4NK7Splines8Spline1D4nameEv"],"Splines::Spline1D::numPoints":[44,2,1,"_CPPv4NK7Splines8Spline1D9numPointsEv"],"Splines::Spline1D::operator()":[44,2,1,"_CPPv4NK7Splines8Spline1DclE9real_type"],"Splines::Spline1D::operator()::x":[44,3,1,"_CPPv4NK7Splines8Spline1DclE9real_type"],"Splines::Spline1D::order":[44,2,1,"_CPPv4NK7Splines8Spline1D5orderEv"],"Splines::Spline1D::pushBack":[44,2,1,"_CPPv4N7Splines8Spline1D8pushBackE9real_type9real_type"],"Splines::Spline1D::pushBack::x":[44,3,1,"_CPPv4N7Splines8Spline1D8pushBackE9real_type9real_type"],"Splines::Spline1D::pushBack::y":[44,3,1,"_CPPv4N7Splines8Spline1D8pushBackE9real_type9real_type"],"Splines::Spline1D::reserve":[44,2,1,"_CPPv4N7Splines8Spline1D7reserveE7integer"],"Splines::Spline1D::reserve::npts":[44,3,1,"_CPPv4N7Splines8Spline1D7reserveE7integer"],"Splines::Spline1D::setOrigin":[44,2,1,"_CPPv4N7Splines8Spline1D9setOriginE9real_type"],"Splines::Spline1D::setOrigin::x0":[44,3,1,"_CPPv4N7Splines8Spline1D9setOriginE9real_type"],"Splines::Spline1D::setRange":[44,2,1,"_CPPv4N7Splines8Spline1D8setRangeE9real_type9real_type"],"Splines::Spline1D::setRange::xmax":[44,3,1,"_CPPv4N7Splines8Spline1D8setRangeE9real_type9real_type"],"Splines::Spline1D::setRange::xmin":[44,3,1,"_CPPv4N7Splines8Spline1D8setRangeE9real_type9real_type"],"Splines::Spline1D::setup":[44,2,1,"_CPPv4N7Splines8Spline1D5setupERK16GenericContainer"],"Splines::Spline1D::setup::gc":[44,3,1,"_CPPv4N7Splines8Spline1D5setupERK16GenericContainer"],"Splines::Spline1D::type":[44,2,1,"_CPPv4NK7Splines8Spline1D4typeEv"],"Splines::Spline1D::type_name":[44,2,1,"_CPPv4NK7Splines8Spline1D9type_nameEv"],"Splines::Spline1D::writeToStream":[44,2,1,"_CPPv4NK7Splines8Spline1D13writeToStreamER12ostream_type"],"Splines::Spline1D::writeToStream::s":[44,3,1,"_CPPv4NK7Splines8Spline1D13writeToStreamER12ostream_type"],"Splines::Spline1D::xBegin":[44,2,1,"_CPPv4NK7Splines8Spline1D6xBeginEv"],"Splines::Spline1D::xEnd":[44,2,1,"_CPPv4NK7Splines8Spline1D4xEndEv"],"Splines::Spline1D::xMax":[44,2,1,"_CPPv4NK7Splines8Spline1D4xMaxEv"],"Splines::Spline1D::xMin":[44,2,1,"_CPPv4NK7Splines8Spline1D4xMinEv"],"Splines::Spline1D::xNode":[44,2,1,"_CPPv4NK7Splines8Spline1D5xNodeE7integer"],"Splines::Spline1D::xNode::i":[44,3,1,"_CPPv4NK7Splines8Spline1D5xNodeE7integer"],"Splines::Spline1D::yBegin":[44,2,1,"_CPPv4NK7Splines8Spline1D6yBeginEv"],"Splines::Spline1D::yEnd":[44,2,1,"_CPPv4NK7Splines8Spline1D4yEndEv"],"Splines::Spline1D::yMax":[44,2,1,"_CPPv4NK7Splines8Spline1D4yMaxEv"],"Splines::Spline1D::yMin":[44,2,1,"_CPPv4NK7Splines8Spline1D4yMinEv"],"Splines::Spline1D::yNode":[44,2,1,"_CPPv4NK7Splines8Spline1D5yNodeE7integer"],"Splines::Spline1D::yNode::i":[44,3,1,"_CPPv4NK7Splines8Spline1D5yNodeE7integer"],"Splines::Spline1D::~Spline1D":[44,2,1,"_CPPv4N7Splines8Spline1DD0Ev"],"Splines::Spline2D":[45,1,1,"_CPPv4N7Splines8Spline2DE"],"Splines::Spline2D::D":[45,2,1,"_CPPv4NK7Splines8Spline2D1DE9real_type9real_typeAL3E_9real_type"],"Splines::Spline2D::D::d":[45,3,1,"_CPPv4NK7Splines8Spline2D1DE9real_type9real_typeAL3E_9real_type"],"Splines::Spline2D::D::x":[45,3,1,"_CPPv4NK7Splines8Spline2D1DE9real_type9real_typeAL3E_9real_type"],"Splines::Spline2D::D::y":[45,3,1,"_CPPv4NK7Splines8Spline2D1DE9real_type9real_typeAL3E_9real_type"],"Splines::Spline2D::DD":[45,2,1,"_CPPv4NK7Splines8Spline2D2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Spline2D::DD::dd":[45,3,1,"_CPPv4NK7Splines8Spline2D2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Spline2D::DD::x":[45,3,1,"_CPPv4NK7Splines8Spline2D2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Spline2D::DD::y":[45,3,1,"_CPPv4NK7Splines8Spline2D2DDE9real_type9real_typeAL6E_9real_type"],"Splines::Spline2D::Dx":[45,2,1,"_CPPv4NK7Splines8Spline2D2DxE9real_type9real_type"],"Splines::Spline2D::Dx::x":[45,3,1,"_CPPv4NK7Splines8Spline2D2DxE9real_type9real_type"],"Splines::Spline2D::Dx::y":[45,3,1,"_CPPv4NK7Splines8Spline2D2DxE9real_type9real_type"],"Splines::Spline2D::Dxx":[45,2,1,"_CPPv4NK7Splines8Spline2D3DxxE9real_type9real_type"],"Splines::Spline2D::Dxx::x":[45,3,1,"_CPPv4NK7Splines8Spline2D3DxxE9real_type9real_type"],"Splines::Spline2D::Dxx::y":[45,3,1,"_CPPv4NK7Splines8Spline2D3DxxE9real_type9real_type"],"Splines::Spline2D::Dxy":[45,2,1,"_CPPv4NK7Splines8Spline2D3DxyE9real_type9real_type"],"Splines::Spline2D::Dxy::x":[45,3,1,"_CPPv4NK7Splines8Spline2D3DxyE9real_type9real_type"],"Splines::Spline2D::Dxy::y":[45,3,1,"_CPPv4NK7Splines8Spline2D3DxyE9real_type9real_type"],"Splines::Spline2D::Dy":[45,2,1,"_CPPv4NK7Splines8Spline2D2DyE9real_type9real_type"],"Splines::Spline2D::Dy::x":[45,3,1,"_CPPv4NK7Splines8Spline2D2DyE9real_type9real_type"],"Splines::Spline2D::Dy::y":[45,3,1,"_CPPv4NK7Splines8Spline2D2DyE9real_type9real_type"],"Splines::Spline2D::Dyy":[45,2,1,"_CPPv4NK7Splines8Spline2D3DyyE9real_type9real_type"],"Splines::Spline2D::Dyy::x":[45,3,1,"_CPPv4NK7Splines8Spline2D3DyyE9real_type9real_type"],"Splines::Spline2D::Dyy::y":[45,3,1,"_CPPv4NK7Splines8Spline2D3DyyE9real_type9real_type"],"Splines::Spline2D::Spline2D":[45,2,1,"_CPPv4N7Splines8Spline2D8Spline2DERK6string"],"Splines::Spline2D::Spline2D::name":[45,3,1,"_CPPv4N7Splines8Spline2D8Spline2DERK6string"],"Splines::Spline2D::build":[45,2,1,"_CPPv4N7Splines8Spline2D5buildERK16GenericContainer"],"Splines::Spline2D::build::fortran_storage":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::build::gc":[45,3,1,"_CPPv4N7Splines8Spline2D5buildERK16GenericContainer"],"Splines::Spline2D::build::incx":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Spline2D::build::incy":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Spline2D::build::ldZ":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::Spline2D::build::nx":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeE7integer7integerbb"],"Splines::Spline2D::build::ny":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeE7integer7integerbb"],"Splines::Spline2D::build::tp":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::build::transposed":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::build::x":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::build::y":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::build::z":[45,3,1,"_CPPv4N7Splines8Spline2D5buildE12SplineType2DRK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::Spline2D::clear":[45,2,1,"_CPPv4N7Splines8Spline2D5clearEv"],"Splines::Spline2D::dump_data":[45,2,1,"_CPPv4NK7Splines8Spline2D9dump_dataER12ostream_type"],"Splines::Spline2D::dump_data::stream":[45,3,1,"_CPPv4NK7Splines8Spline2D9dump_dataER12ostream_type"],"Splines::Spline2D::eval":[45,2,1,"_CPPv4NK7Splines8Spline2D4evalE9real_type9real_type"],"Splines::Spline2D::eval::x":[45,3,1,"_CPPv4NK7Splines8Spline2D4evalE9real_type9real_type"],"Splines::Spline2D::eval::y":[45,3,1,"_CPPv4NK7Splines8Spline2D4evalE9real_type9real_type"],"Splines::Spline2D::eval_D_1":[45,2,1,"_CPPv4NK7Splines8Spline2D8eval_D_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1::x":[45,3,1,"_CPPv4NK7Splines8Spline2D8eval_D_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1::y":[45,3,1,"_CPPv4NK7Splines8Spline2D8eval_D_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1_1":[45,2,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1_1::x":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1_1::y":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_1E9real_type9real_type"],"Splines::Spline2D::eval_D_1_2":[45,2,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_2E9real_type9real_type"],"Splines::Spline2D::eval_D_1_2::x":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_2E9real_type9real_type"],"Splines::Spline2D::eval_D_1_2::y":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_1_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2":[45,2,1,"_CPPv4NK7Splines8Spline2D8eval_D_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2::x":[45,3,1,"_CPPv4NK7Splines8Spline2D8eval_D_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2::y":[45,3,1,"_CPPv4NK7Splines8Spline2D8eval_D_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2_2":[45,2,1,"_CPPv4NK7Splines8Spline2D10eval_D_2_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2_2::x":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_2_2E9real_type9real_type"],"Splines::Spline2D::eval_D_2_2::y":[45,3,1,"_CPPv4NK7Splines8Spline2D10eval_D_2_2E9real_type9real_type"],"Splines::Spline2D::info":[45,2,1,"_CPPv4NK7Splines8Spline2D4infoEv"],"Splines::Spline2D::info::stream":[45,3,1,"_CPPv4NK7Splines8Spline2D4infoER12ostream_type"],"Splines::Spline2D::is_x_bounded":[45,2,1,"_CPPv4NK7Splines8Spline2D12is_x_boundedEv"],"Splines::Spline2D::is_x_closed":[45,2,1,"_CPPv4NK7Splines8Spline2D11is_x_closedEv"],"Splines::Spline2D::is_y_bounded":[45,2,1,"_CPPv4NK7Splines8Spline2D12is_y_boundedEv"],"Splines::Spline2D::is_y_closed":[45,2,1,"_CPPv4NK7Splines8Spline2D11is_y_closedEv"],"Splines::Spline2D::make_x_bounded":[45,2,1,"_CPPv4N7Splines8Spline2D14make_x_boundedEv"],"Splines::Spline2D::make_x_closed":[45,2,1,"_CPPv4N7Splines8Spline2D13make_x_closedEv"],"Splines::Spline2D::make_x_opened":[45,2,1,"_CPPv4N7Splines8Spline2D13make_x_openedEv"],"Splines::Spline2D::make_x_unbounded":[45,2,1,"_CPPv4N7Splines8Spline2D16make_x_unboundedEv"],"Splines::Spline2D::make_y_bounded":[45,2,1,"_CPPv4N7Splines8Spline2D14make_y_boundedEv"],"Splines::Spline2D::make_y_closed":[45,2,1,"_CPPv4N7Splines8Spline2D13make_y_closedEv"],"Splines::Spline2D::make_y_opened":[45,2,1,"_CPPv4N7Splines8Spline2D13make_y_openedEv"],"Splines::Spline2D::make_y_unbounded":[45,2,1,"_CPPv4N7Splines8Spline2D16make_y_unboundedEv"],"Splines::Spline2D::name":[45,2,1,"_CPPv4NK7Splines8Spline2D4nameEv"],"Splines::Spline2D::numPointX":[45,2,1,"_CPPv4NK7Splines8Spline2D9numPointXEv"],"Splines::Spline2D::numPointY":[45,2,1,"_CPPv4NK7Splines8Spline2D9numPointYEv"],"Splines::Spline2D::operator()":[45,2,1,"_CPPv4NK7Splines8Spline2DclE9real_type9real_type"],"Splines::Spline2D::operator()::x":[45,3,1,"_CPPv4NK7Splines8Spline2DclE9real_type9real_type"],"Splines::Spline2D::operator()::y":[45,3,1,"_CPPv4NK7Splines8Spline2DclE9real_type9real_type"],"Splines::Spline2D::setup":[45,2,1,"_CPPv4N7Splines8Spline2D5setupERK16GenericContainer"],"Splines::Spline2D::setup::gc":[45,3,1,"_CPPv4N7Splines8Spline2D5setupERK16GenericContainer"],"Splines::Spline2D::type_name":[45,2,1,"_CPPv4NK7Splines8Spline2D9type_nameEv"],"Splines::Spline2D::writeToStream":[45,2,1,"_CPPv4NK7Splines8Spline2D13writeToStreamER12ostream_type"],"Splines::Spline2D::writeToStream::s":[45,3,1,"_CPPv4NK7Splines8Spline2D13writeToStreamER12ostream_type"],"Splines::Spline2D::xMax":[45,2,1,"_CPPv4NK7Splines8Spline2D4xMaxEv"],"Splines::Spline2D::xMin":[45,2,1,"_CPPv4NK7Splines8Spline2D4xMinEv"],"Splines::Spline2D::xNode":[45,2,1,"_CPPv4NK7Splines8Spline2D5xNodeE7integer"],"Splines::Spline2D::xNode::i":[45,3,1,"_CPPv4NK7Splines8Spline2D5xNodeE7integer"],"Splines::Spline2D::yMax":[45,2,1,"_CPPv4NK7Splines8Spline2D4yMaxEv"],"Splines::Spline2D::yMin":[45,2,1,"_CPPv4NK7Splines8Spline2D4yMinEv"],"Splines::Spline2D::yNode":[45,2,1,"_CPPv4NK7Splines8Spline2D5yNodeE7integer"],"Splines::Spline2D::yNode::i":[45,3,1,"_CPPv4NK7Splines8Spline2D5yNodeE7integer"],"Splines::Spline2D::zMax":[45,2,1,"_CPPv4NK7Splines8Spline2D4zMaxEv"],"Splines::Spline2D::zMin":[45,2,1,"_CPPv4NK7Splines8Spline2D4zMinEv"],"Splines::Spline2D::zNode":[45,2,1,"_CPPv4NK7Splines8Spline2D5zNodeE7integer7integer"],"Splines::Spline2D::zNode::i":[45,3,1,"_CPPv4NK7Splines8Spline2D5zNodeE7integer7integer"],"Splines::Spline2D::zNode::j":[45,3,1,"_CPPv4NK7Splines8Spline2D5zNodeE7integer7integer"],"Splines::Spline2D::~Spline2D":[45,2,1,"_CPPv4N7Splines8Spline2DD0Ev"],"Splines::Spline::D":[41,2,1,"_CPPv4NK7Splines6Spline1DE9real_type"],"Splines::Spline::D::x":[41,3,1,"_CPPv4NK7Splines6Spline1DE9real_type"],"Splines::Spline::DD":[41,2,1,"_CPPv4NK7Splines6Spline2DDE9real_type"],"Splines::Spline::DD::x":[41,3,1,"_CPPv4NK7Splines6Spline2DDE9real_type"],"Splines::Spline::DDD":[41,2,1,"_CPPv4NK7Splines6Spline3DDDE9real_type"],"Splines::Spline::DDD::x":[41,3,1,"_CPPv4NK7Splines6Spline3DDDE9real_type"],"Splines::Spline::DDDD":[41,2,1,"_CPPv4NK7Splines6Spline4DDDDE9real_type"],"Splines::Spline::DDDDD":[41,2,1,"_CPPv4NK7Splines6Spline5DDDDDE9real_type"],"Splines::Spline::Spline":[41,2,1,"_CPPv4N7Splines6Spline6SplineERK6string"],"Splines::Spline::Spline::name":[41,3,1,"_CPPv4N7Splines6Spline6SplineERK6string"],"Splines::Spline::build":[41,2,1,"_CPPv4N7Splines6Spline5buildEv"],"Splines::Spline::build::gc":[41,3,1,"_CPPv4N7Splines6Spline5buildERK16GenericContainer"],"Splines::Spline::build::incx":[41,3,1,"_CPPv4N7Splines6Spline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::Spline::build::incy":[41,3,1,"_CPPv4N7Splines6Spline5buildEPK9real_type7integerPK9real_type7integer7integer"],"Splines::Spline::build::n":[41,3,1,"_CPPv4N7Splines6Spline5buildEPK9real_typePK9real_type7integer"],"Splines::Spline::build::x":[41,3,1,"_CPPv4N7Splines6Spline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::Spline::build::y":[41,3,1,"_CPPv4N7Splines6Spline5buildERK6vectorI9real_typeERK6vectorI9real_typeE"],"Splines::Spline::clear":[41,2,1,"_CPPv4N7Splines6Spline5clearEv"],"Splines::Spline::coeffs":[41,2,1,"_CPPv4NK7Splines6Spline6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline::coeffs::cfs":[41,3,1,"_CPPv4NK7Splines6Spline6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline::coeffs::nodes":[41,3,1,"_CPPv4NK7Splines6Spline6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline::coeffs::transpose":[41,3,1,"_CPPv4NK7Splines6Spline6coeffsEPC9real_typePC9real_typeb"],"Splines::Spline::dropBack":[41,2,1,"_CPPv4N7Splines6Spline8dropBackEv"],"Splines::Spline::dump":[41,2,1,"_CPPv4NK7Splines6Spline4dumpER12ostream_type7integerPKc"],"Splines::Spline::dump::fname":[41,3,1,"_CPPv4NK7Splines6Spline4dumpEPKc7integerPKc"],"Splines::Spline::dump::header":[41,3,1,"_CPPv4NK7Splines6Spline4dumpER12ostream_type7integerPKc"],"Splines::Spline::dump::nintervals":[41,3,1,"_CPPv4NK7Splines6Spline4dumpER12ostream_type7integerPKc"],"Splines::Spline::dump::s":[41,3,1,"_CPPv4NK7Splines6Spline4dumpER12ostream_type7integerPKc"],"Splines::Spline::eval":[41,2,1,"_CPPv4NK7Splines6Spline4evalE9real_type"],"Splines::Spline::eval::x":[41,3,1,"_CPPv4NK7Splines6Spline4evalE9real_type"],"Splines::Spline::eval_D":[41,2,1,"_CPPv4NK7Splines6Spline6eval_DE9real_type"],"Splines::Spline::eval_D::x":[41,3,1,"_CPPv4NK7Splines6Spline6eval_DE9real_type"],"Splines::Spline::eval_DD":[41,2,1,"_CPPv4NK7Splines6Spline7eval_DDE9real_type"],"Splines::Spline::eval_DD::x":[41,3,1,"_CPPv4NK7Splines6Spline7eval_DDE9real_type"],"Splines::Spline::eval_DDD":[41,2,1,"_CPPv4NK7Splines6Spline8eval_DDDE9real_type"],"Splines::Spline::eval_DDD::x":[41,3,1,"_CPPv4NK7Splines6Spline8eval_DDDE9real_type"],"Splines::Spline::eval_DDDD":[41,2,1,"_CPPv4NK7Splines6Spline9eval_DDDDE9real_type"],"Splines::Spline::eval_DDDD::x":[41,3,1,"_CPPv4NK7Splines6Spline9eval_DDDDE9real_type"],"Splines::Spline::eval_DDDDD":[41,2,1,"_CPPv4NK7Splines6Spline10eval_DDDDDE9real_type"],"Splines::Spline::eval_DDDDD::x":[41,3,1,"_CPPv4NK7Splines6Spline10eval_DDDDDE9real_type"],"Splines::Spline::id_D":[41,2,1,"_CPPv4NK7Splines6Spline4id_DE7integer9real_type"],"Splines::Spline::id_D::ni":[41,3,1,"_CPPv4NK7Splines6Spline4id_DE7integer9real_type"],"Splines::Spline::id_D::x":[41,3,1,"_CPPv4NK7Splines6Spline4id_DE7integer9real_type"],"Splines::Spline::id_DD":[41,2,1,"_CPPv4NK7Splines6Spline5id_DDE7integer9real_type"],"Splines::Spline::id_DD::ni":[41,3,1,"_CPPv4NK7Splines6Spline5id_DDE7integer9real_type"],"Splines::Spline::id_DD::x":[41,3,1,"_CPPv4NK7Splines6Spline5id_DDE7integer9real_type"],"Splines::Spline::id_DDD":[41,2,1,"_CPPv4NK7Splines6Spline6id_DDDE7integer9real_type"],"Splines::Spline::id_DDD::ni":[41,3,1,"_CPPv4NK7Splines6Spline6id_DDDE7integer9real_type"],"Splines::Spline::id_DDD::x":[41,3,1,"_CPPv4NK7Splines6Spline6id_DDDE7integer9real_type"],"Splines::Spline::id_DDDD":[41,2,1,"_CPPv4NK7Splines6Spline7id_DDDDE7integer9real_type"],"Splines::Spline::id_DDDDD":[41,2,1,"_CPPv4NK7Splines6Spline8id_DDDDDE7integer9real_type"],"Splines::Spline::id_eval":[41,2,1,"_CPPv4NK7Splines6Spline7id_evalE7integer9real_type"],"Splines::Spline::id_eval::ni":[41,3,1,"_CPPv4NK7Splines6Spline7id_evalE7integer9real_type"],"Splines::Spline::id_eval::x":[41,3,1,"_CPPv4NK7Splines6Spline7id_evalE7integer9real_type"],"Splines::Spline::info":[41,2,1,"_CPPv4NK7Splines6Spline4infoEv"],"Splines::Spline::info::stream":[41,3,1,"_CPPv4NK7Splines6Spline4infoER12ostream_type"],"Splines::Spline::is_bounded":[41,2,1,"_CPPv4NK7Splines6Spline10is_boundedEv"],"Splines::Spline::is_closed":[41,2,1,"_CPPv4NK7Splines6Spline9is_closedEv"],"Splines::Spline::is_extended_constant":[41,2,1,"_CPPv4NK7Splines6Spline20is_extended_constantEv"],"Splines::Spline::make_bounded":[41,2,1,"_CPPv4N7Splines6Spline12make_boundedEv"],"Splines::Spline::make_closed":[41,2,1,"_CPPv4N7Splines6Spline11make_closedEv"],"Splines::Spline::make_extended_constant":[41,2,1,"_CPPv4N7Splines6Spline22make_extended_constantEv"],"Splines::Spline::make_extended_not_constant":[41,2,1,"_CPPv4N7Splines6Spline26make_extended_not_constantEv"],"Splines::Spline::make_opened":[41,2,1,"_CPPv4N7Splines6Spline11make_openedEv"],"Splines::Spline::make_unbounded":[41,2,1,"_CPPv4N7Splines6Spline14make_unboundedEv"],"Splines::Spline::name":[41,2,1,"_CPPv4NK7Splines6Spline4nameEv"],"Splines::Spline::numPoints":[41,2,1,"_CPPv4NK7Splines6Spline9numPointsEv"],"Splines::Spline::operator()":[41,2,1,"_CPPv4NK7Splines6SplineclE9real_type"],"Splines::Spline::operator()::x":[41,3,1,"_CPPv4NK7Splines6SplineclE9real_type"],"Splines::Spline::order":[41,2,1,"_CPPv4NK7Splines6Spline5orderEv"],"Splines::Spline::pushBack":[41,2,1,"_CPPv4N7Splines6Spline8pushBackE9real_type9real_type"],"Splines::Spline::pushBack::x":[41,3,1,"_CPPv4N7Splines6Spline8pushBackE9real_type9real_type"],"Splines::Spline::pushBack::y":[41,3,1,"_CPPv4N7Splines6Spline8pushBackE9real_type9real_type"],"Splines::Spline::reserve":[41,2,1,"_CPPv4N7Splines6Spline7reserveE7integer"],"Splines::Spline::reserve::npts":[41,3,1,"_CPPv4N7Splines6Spline7reserveE7integer"],"Splines::Spline::search":[41,2,1,"_CPPv4NK7Splines6Spline6searchER9real_type"],"Splines::Spline::search::x":[41,3,1,"_CPPv4NK7Splines6Spline6searchER9real_type"],"Splines::Spline::setOrigin":[41,2,1,"_CPPv4N7Splines6Spline9setOriginE9real_type"],"Splines::Spline::setOrigin::x0":[41,3,1,"_CPPv4N7Splines6Spline9setOriginE9real_type"],"Splines::Spline::setRange":[41,2,1,"_CPPv4N7Splines6Spline8setRangeE9real_type9real_type"],"Splines::Spline::setRange::xmax":[41,3,1,"_CPPv4N7Splines6Spline8setRangeE9real_type9real_type"],"Splines::Spline::setRange::xmin":[41,3,1,"_CPPv4N7Splines6Spline8setRangeE9real_type9real_type"],"Splines::Spline::setup":[41,2,1,"_CPPv4N7Splines6Spline5setupERK16GenericContainer"],"Splines::Spline::setup::gc":[41,3,1,"_CPPv4N7Splines6Spline5setupERK16GenericContainer"],"Splines::Spline::type":[41,2,1,"_CPPv4NK7Splines6Spline4typeEv"],"Splines::Spline::type_name":[41,2,1,"_CPPv4NK7Splines6Spline9type_nameEv"],"Splines::Spline::writeToStream":[41,2,1,"_CPPv4NK7Splines6Spline13writeToStreamER12ostream_type"],"Splines::Spline::writeToStream::s":[41,3,1,"_CPPv4NK7Splines6Spline13writeToStreamER12ostream_type"],"Splines::Spline::xBegin":[41,2,1,"_CPPv4NK7Splines6Spline6xBeginEv"],"Splines::Spline::xEnd":[41,2,1,"_CPPv4NK7Splines6Spline4xEndEv"],"Splines::Spline::xMax":[41,2,1,"_CPPv4NK7Splines6Spline4xMaxEv"],"Splines::Spline::xMin":[41,2,1,"_CPPv4NK7Splines6Spline4xMinEv"],"Splines::Spline::xNode":[41,2,1,"_CPPv4NK7Splines6Spline5xNodeE7integer"],"Splines::Spline::xNode::i":[41,3,1,"_CPPv4NK7Splines6Spline5xNodeE7integer"],"Splines::Spline::yBegin":[41,2,1,"_CPPv4NK7Splines6Spline6yBeginEv"],"Splines::Spline::yEnd":[41,2,1,"_CPPv4NK7Splines6Spline4yEndEv"],"Splines::Spline::yMax":[41,2,1,"_CPPv4NK7Splines6Spline4yMaxEv"],"Splines::Spline::yMin":[41,2,1,"_CPPv4NK7Splines6Spline4yMinEv"],"Splines::Spline::yNode":[41,2,1,"_CPPv4NK7Splines6Spline5yNodeE7integer"],"Splines::Spline::yNode::i":[41,3,1,"_CPPv4NK7Splines6Spline5yNodeE7integer"],"Splines::Spline::y_min_max":[41,2,1,"_CPPv4NK7Splines6Spline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::Spline::y_min_max::i_max_pos":[41,3,1,"_CPPv4NK7Splines6Spline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::Spline::y_min_max::i_min_pos":[41,3,1,"_CPPv4NK7Splines6Spline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::Spline::y_min_max::x_max_pos":[41,3,1,"_CPPv4NK7Splines6Spline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::Spline::y_min_max::x_min_pos":[41,3,1,"_CPPv4NK7Splines6Spline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::Spline::y_min_max::y_max":[41,3,1,"_CPPv4NK7Splines6Spline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::Spline::y_min_max::y_min":[41,3,1,"_CPPv4NK7Splines6Spline9y_min_maxER7integerR9real_typeR9real_typeR7integerR9real_typeR9real_type"],"Splines::Spline::~Spline":[41,2,1,"_CPPv4N7Splines6SplineD0Ev"],"Splines::SplineSet":[46,1,1,"_CPPv4N7Splines9SplineSetE"],"Splines::SplineSet::BinarySearch":[47,1,1,"_CPPv4N7Splines9SplineSet12BinarySearchE"],"Splines::SplineSet::BinarySearch::BinarySearch":[47,2,1,"_CPPv4N7Splines9SplineSet12BinarySearch12BinarySearchEv"],"Splines::SplineSet::BinarySearch::DATA_TYPE":[47,6,1,"_CPPv4N7Splines9SplineSet12BinarySearch9DATA_TYPEE"],"Splines::SplineSet::BinarySearch::clear":[47,2,1,"_CPPv4N7Splines9SplineSet12BinarySearch5clearEv"],"Splines::SplineSet::BinarySearch::get_elem":[47,2,1,"_CPPv4NK7Splines9SplineSet12BinarySearch8get_elemE7integer"],"Splines::SplineSet::BinarySearch::get_elem::i":[47,3,1,"_CPPv4NK7Splines9SplineSet12BinarySearch8get_elemE7integer"],"Splines::SplineSet::BinarySearch::insert":[47,2,1,"_CPPv4N7Splines9SplineSet12BinarySearch6insertERKNSt6stringE7integer"],"Splines::SplineSet::BinarySearch::insert::id":[47,3,1,"_CPPv4N7Splines9SplineSet12BinarySearch6insertERKNSt6stringE7integer"],"Splines::SplineSet::BinarySearch::insert::position":[47,3,1,"_CPPv4N7Splines9SplineSet12BinarySearch6insertERKNSt6stringE7integer"],"Splines::SplineSet::BinarySearch::n_elem":[47,2,1,"_CPPv4NK7Splines9SplineSet12BinarySearch6n_elemEv"],"Splines::SplineSet::BinarySearch::search":[47,2,1,"_CPPv4NK7Splines9SplineSet12BinarySearch6searchERKNSt6stringE"],"Splines::SplineSet::BinarySearch::search::id":[47,3,1,"_CPPv4NK7Splines9SplineSet12BinarySearch6searchERKNSt6stringE"],"Splines::SplineSet::BinarySearch::~BinarySearch":[47,2,1,"_CPPv4N7Splines9SplineSet12BinarySearchD0Ev"],"Splines::SplineSet::D":[46,2,1,"_CPPv4NK7Splines9SplineSet1DE9real_type7integer"],"Splines::SplineSet::D::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet1DE9real_type7integer"],"Splines::SplineSet::D::x":[46,3,1,"_CPPv4NK7Splines9SplineSet1DE9real_type7integer"],"Splines::SplineSet::DD":[46,2,1,"_CPPv4NK7Splines9SplineSet2DDE9real_type7integer"],"Splines::SplineSet::DD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet2DDE9real_type7integer"],"Splines::SplineSet::DD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet2DDE9real_type7integer"],"Splines::SplineSet::DDD":[46,2,1,"_CPPv4NK7Splines9SplineSet3DDDE9real_type7integer"],"Splines::SplineSet::DDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet3DDDE9real_type7integer"],"Splines::SplineSet::DDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet3DDDE9real_type7integer"],"Splines::SplineSet::DDDD":[46,2,1,"_CPPv4NK7Splines9SplineSet4DDDDE9real_type7integer"],"Splines::SplineSet::DDDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet4DDDDE9real_type7integer"],"Splines::SplineSet::DDDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet4DDDDE9real_type7integer"],"Splines::SplineSet::DDDDD":[46,2,1,"_CPPv4NK7Splines9SplineSet5DDDDDE9real_type7integer"],"Splines::SplineSet::DDDDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet5DDDDDE9real_type7integer"],"Splines::SplineSet::DDDDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet5DDDDDE9real_type7integer"],"Splines::SplineSet::SplineSet":[46,2,1,"_CPPv4N7Splines9SplineSet9SplineSetERK6string"],"Splines::SplineSet::SplineSet::name":[46,3,1,"_CPPv4N7Splines9SplineSet9SplineSetERK6string"],"Splines::SplineSet::build":[46,2,1,"_CPPv4N7Splines9SplineSet5buildERK16GenericContainer"],"Splines::SplineSet::build::X":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::Y":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::Yp":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::gc":[46,3,1,"_CPPv4N7Splines9SplineSet5buildERK16GenericContainer"],"Splines::SplineSet::build::headers":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::npts":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::nspl":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::build::stype":[46,3,1,"_CPPv4N7Splines9SplineSet5buildE7integer7integerPPKcPK12SplineType1DPK9real_typePPK9real_typePPK9real_type"],"Splines::SplineSet::dump_table":[46,2,1,"_CPPv4NK7Splines9SplineSet10dump_tableER12ostream_type7integer"],"Splines::SplineSet::dump_table::num_points":[46,3,1,"_CPPv4NK7Splines9SplineSet10dump_tableER12ostream_type7integer"],"Splines::SplineSet::dump_table::s":[46,3,1,"_CPPv4NK7Splines9SplineSet10dump_tableER12ostream_type7integer"],"Splines::SplineSet::eval":[46,2,1,"_CPPv4NK7Splines9SplineSet4evalERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2":[46,2,1,"_CPPv4NK7Splines9SplineSet5eval2ERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2ERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2E7integer9real_typePC9real_type7integer"],"Splines::SplineSet::eval2::indep":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2ERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2::name":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2E9real_typePKcPKc"],"Splines::SplineSet::eval2::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2E9real_type7integer7integer"],"Splines::SplineSet::eval2::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2ERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2::zeta":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2E9real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2::zetas":[46,3,1,"_CPPv4NK7Splines9SplineSet5eval2ERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D":[46,2,1,"_CPPv4NK7Splines9SplineSet7eval2_DERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DE7integer9real_typePC9real_type7integer"],"Splines::SplineSet::eval2_D::indep":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D::name":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DE9real_typePKcPKc"],"Splines::SplineSet::eval2_D::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DE9real_type7integer7integer"],"Splines::SplineSet::eval2_D::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D::zeta":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DE9real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_D::zetas":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval2_DERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD":[46,2,1,"_CPPv4NK7Splines9SplineSet8eval2_DDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDE7integer9real_typePC9real_type7integer"],"Splines::SplineSet::eval2_DD::indep":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDE9real_typePKcPKc"],"Splines::SplineSet::eval2_DD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDE9real_type7integer7integer"],"Splines::SplineSet::eval2_DD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD::zeta":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDE9real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DD::zetas":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval2_DDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD":[46,2,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDE7integer9real_typePC9real_type7integer"],"Splines::SplineSet::eval2_DDD::indep":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDE9real_typePKcPKc"],"Splines::SplineSet::eval2_DDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDE9real_type7integer7integer"],"Splines::SplineSet::eval2_DDD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD::zeta":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDE9real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval2_DDD::zetas":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval2_DDDERK13vec_real_typePKcRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalE9real_typePC9real_type7integer"],"Splines::SplineSet::eval::name":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalE9real_typePKc"],"Splines::SplineSet::eval::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalE9real_type7integer"],"Splines::SplineSet::eval::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval::vec":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval::x":[46,3,1,"_CPPv4NK7Splines9SplineSet4evalE9real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_D":[46,2,1,"_CPPv4NK7Splines9SplineSet6eval_DERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_D::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_D::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DE9real_typePC9real_type7integer"],"Splines::SplineSet::eval_D::name":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DE9real_typePKc"],"Splines::SplineSet::eval_D::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DE9real_type7integer"],"Splines::SplineSet::eval_D::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_D::vec":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_D::x":[46,3,1,"_CPPv4NK7Splines9SplineSet6eval_DE9real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DD":[46,2,1,"_CPPv4NK7Splines9SplineSet7eval_DDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DD::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDE9real_typePC9real_type7integer"],"Splines::SplineSet::eval_DD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDE9real_typePKc"],"Splines::SplineSet::eval_DD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDE9real_type7integer"],"Splines::SplineSet::eval_DD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DD::vec":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet7eval_DDE9real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDD":[46,2,1,"_CPPv4NK7Splines9SplineSet8eval_DDDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDD::columns":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDE9real_typePC9real_type7integer"],"Splines::SplineSet::eval_DDD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDE9real_typePKc"],"Splines::SplineSet::eval_DDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDE9real_type7integer"],"Splines::SplineSet::eval_DDD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDD::vec":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDERK13vec_real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet8eval_DDDE9real_typeRK15vec_string_typeR16GenericContainer"],"Splines::SplineSet::eval_DDDD":[46,2,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::eval_DDDD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_typePC9real_type7integer"],"Splines::SplineSet::eval_DDDD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_typePKc"],"Splines::SplineSet::eval_DDDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_type7integer"],"Splines::SplineSet::eval_DDDD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::eval_DDDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet9eval_DDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::eval_DDDDD":[46,2,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::eval_DDDDD::incy":[46,3,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_typePC9real_type7integer"],"Splines::SplineSet::eval_DDDDD::name":[46,3,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_typePKc"],"Splines::SplineSet::eval_DDDDD::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_type7integer"],"Splines::SplineSet::eval_DDDDD::vals":[46,3,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::eval_DDDDD::x":[46,3,1,"_CPPv4NK7Splines9SplineSet10eval_DDDDDE9real_typeR6vectorI9real_typeE"],"Splines::SplineSet::getPosition":[46,2,1,"_CPPv4NK7Splines9SplineSet11getPositionEPKc"],"Splines::SplineSet::getPosition::hdr":[46,3,1,"_CPPv4NK7Splines9SplineSet11getPositionEPKc"],"Splines::SplineSet::getSpline":[46,2,1,"_CPPv4NK7Splines9SplineSet9getSplineEPKc"],"Splines::SplineSet::getSpline::hdr":[46,3,1,"_CPPv4NK7Splines9SplineSet9getSplineEPKc"],"Splines::SplineSet::getSpline::i":[46,3,1,"_CPPv4NK7Splines9SplineSet9getSplineE7integer"],"Splines::SplineSet::get_headers":[46,2,1,"_CPPv4NK7Splines9SplineSet11get_headersERNSt6vectorINSt6stringEEE"],"Splines::SplineSet::get_headers::names":[46,3,1,"_CPPv4NK7Splines9SplineSet11get_headersERNSt6vectorINSt6stringEEE"],"Splines::SplineSet::header":[46,2,1,"_CPPv4NK7Splines9SplineSet6headerE7integer"],"Splines::SplineSet::header::i":[46,3,1,"_CPPv4NK7Splines9SplineSet6headerE7integer"],"Splines::SplineSet::info":[46,2,1,"_CPPv4NK7Splines9SplineSet4infoEv"],"Splines::SplineSet::info::stream":[46,3,1,"_CPPv4NK7Splines9SplineSet4infoER12ostream_type"],"Splines::SplineSet::isMonotone":[46,2,1,"_CPPv4NK7Splines9SplineSet10isMonotoneE7integer"],"Splines::SplineSet::isMonotone::i":[46,3,1,"_CPPv4NK7Splines9SplineSet10isMonotoneE7integer"],"Splines::SplineSet::name":[46,2,1,"_CPPv4NK7Splines9SplineSet4nameEv"],"Splines::SplineSet::name_list":[46,2,1,"_CPPv4NK7Splines9SplineSet9name_listEv"],"Splines::SplineSet::numPoints":[46,2,1,"_CPPv4NK7Splines9SplineSet9numPointsEv"],"Splines::SplineSet::numSplines":[46,2,1,"_CPPv4NK7Splines9SplineSet10numSplinesEv"],"Splines::SplineSet::operator()":[46,2,1,"_CPPv4NK7Splines9SplineSetclE9real_type7integer"],"Splines::SplineSet::operator()::spl":[46,3,1,"_CPPv4NK7Splines9SplineSetclE9real_type7integer"],"Splines::SplineSet::operator()::x":[46,3,1,"_CPPv4NK7Splines9SplineSetclE9real_type7integer"],"Splines::SplineSet::setup":[46,2,1,"_CPPv4N7Splines9SplineSet5setupERK16GenericContainer"],"Splines::SplineSet::setup::gc":[46,3,1,"_CPPv4N7Splines9SplineSet5setupERK16GenericContainer"],"Splines::SplineSet::type":[46,2,1,"_CPPv4NK7Splines9SplineSet4typeEv"],"Splines::SplineSet::xMax":[46,2,1,"_CPPv4NK7Splines9SplineSet4xMaxEv"],"Splines::SplineSet::xMin":[46,2,1,"_CPPv4NK7Splines9SplineSet4xMinEv"],"Splines::SplineSet::xNode":[46,2,1,"_CPPv4NK7Splines9SplineSet5xNodeE7integer"],"Splines::SplineSet::xNode::npt":[46,3,1,"_CPPv4NK7Splines9SplineSet5xNodeE7integer"],"Splines::SplineSet::xNodes":[46,2,1,"_CPPv4NK7Splines9SplineSet6xNodesEv"],"Splines::SplineSet::yMax":[46,2,1,"_CPPv4NK7Splines9SplineSet4yMaxEPKc"],"Splines::SplineSet::yMax::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet4yMaxEPKc"],"Splines::SplineSet::yMin":[46,2,1,"_CPPv4NK7Splines9SplineSet4yMinEPKc"],"Splines::SplineSet::yMin::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet4yMinEPKc"],"Splines::SplineSet::yNode":[46,2,1,"_CPPv4NK7Splines9SplineSet5yNodeE7integer7integer"],"Splines::SplineSet::yNode::npt":[46,3,1,"_CPPv4NK7Splines9SplineSet5yNodeE7integer7integer"],"Splines::SplineSet::yNode::spl":[46,3,1,"_CPPv4NK7Splines9SplineSet5yNodeE7integer7integer"],"Splines::SplineSet::yNodes":[46,2,1,"_CPPv4NK7Splines9SplineSet6yNodesE7integer"],"Splines::SplineSet::yNodes::i":[46,3,1,"_CPPv4NK7Splines9SplineSet6yNodesE7integer"],"Splines::SplineSet::~SplineSet":[46,2,1,"_CPPv4N7Splines9SplineSetD0Ev"],"Splines::SplineSurf":[43,1,1,"_CPPv4N7Splines10SplineSurfE"],"Splines::SplineSurf::D":[43,2,1,"_CPPv4NK7Splines10SplineSurf1DE9real_type9real_typeAL3E_9real_type"],"Splines::SplineSurf::D::d":[43,3,1,"_CPPv4NK7Splines10SplineSurf1DE9real_type9real_typeAL3E_9real_type"],"Splines::SplineSurf::D::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf1DE9real_type9real_typeAL3E_9real_type"],"Splines::SplineSurf::D::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf1DE9real_type9real_typeAL3E_9real_type"],"Splines::SplineSurf::DD":[43,2,1,"_CPPv4NK7Splines10SplineSurf2DDE9real_type9real_typeAL6E_9real_type"],"Splines::SplineSurf::DD::dd":[43,3,1,"_CPPv4NK7Splines10SplineSurf2DDE9real_type9real_typeAL6E_9real_type"],"Splines::SplineSurf::DD::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf2DDE9real_type9real_typeAL6E_9real_type"],"Splines::SplineSurf::DD::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf2DDE9real_type9real_typeAL6E_9real_type"],"Splines::SplineSurf::Dx":[43,2,1,"_CPPv4NK7Splines10SplineSurf2DxE9real_type9real_type"],"Splines::SplineSurf::Dx::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf2DxE9real_type9real_type"],"Splines::SplineSurf::Dx::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf2DxE9real_type9real_type"],"Splines::SplineSurf::Dxx":[43,2,1,"_CPPv4NK7Splines10SplineSurf3DxxE9real_type9real_type"],"Splines::SplineSurf::Dxx::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf3DxxE9real_type9real_type"],"Splines::SplineSurf::Dxx::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf3DxxE9real_type9real_type"],"Splines::SplineSurf::Dxy":[43,2,1,"_CPPv4NK7Splines10SplineSurf3DxyE9real_type9real_type"],"Splines::SplineSurf::Dxy::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf3DxyE9real_type9real_type"],"Splines::SplineSurf::Dxy::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf3DxyE9real_type9real_type"],"Splines::SplineSurf::Dy":[43,2,1,"_CPPv4NK7Splines10SplineSurf2DyE9real_type9real_type"],"Splines::SplineSurf::Dy::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf2DyE9real_type9real_type"],"Splines::SplineSurf::Dy::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf2DyE9real_type9real_type"],"Splines::SplineSurf::Dyy":[43,2,1,"_CPPv4NK7Splines10SplineSurf3DyyE9real_type9real_type"],"Splines::SplineSurf::Dyy::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf3DyyE9real_type9real_type"],"Splines::SplineSurf::Dyy::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf3DyyE9real_type9real_type"],"Splines::SplineSurf::SplineSurf":[43,2,1,"_CPPv4N7Splines10SplineSurf10SplineSurfERK6string"],"Splines::SplineSurf::SplineSurf::name":[43,3,1,"_CPPv4N7Splines10SplineSurf10SplineSurfERK6string"],"Splines::SplineSurf::build":[43,2,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::build::fortran_storage":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::build::gc":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildERK16GenericContainer"],"Splines::SplineSurf::build::incx":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::SplineSurf::build::incy":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::SplineSurf::build::ldZ":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildEPK9real_type7integerPK9real_type7integerPK9real_type7integer7integer7integerbb"],"Splines::SplineSurf::build::nx":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::SplineSurf::build::ny":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeE7integer7integerbb"],"Splines::SplineSurf::build::transposed":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::build::x":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::build::y":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::build::z":[43,3,1,"_CPPv4N7Splines10SplineSurf5buildERK6vectorI9real_typeERK6vectorI9real_typeERK6vectorI9real_typeEbb"],"Splines::SplineSurf::clear":[43,2,1,"_CPPv4N7Splines10SplineSurf5clearEv"],"Splines::SplineSurf::dump_data":[43,2,1,"_CPPv4NK7Splines10SplineSurf9dump_dataER12ostream_type"],"Splines::SplineSurf::dump_data::s":[43,3,1,"_CPPv4NK7Splines10SplineSurf9dump_dataER12ostream_type"],"Splines::SplineSurf::eval":[43,2,1,"_CPPv4NK7Splines10SplineSurf4evalE9real_type9real_type"],"Splines::SplineSurf::eval::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf4evalE9real_type9real_type"],"Splines::SplineSurf::eval::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf4evalE9real_type9real_type"],"Splines::SplineSurf::eval_D_1":[43,2,1,"_CPPv4NK7Splines10SplineSurf8eval_D_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf8eval_D_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf8eval_D_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_1":[43,2,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_1::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_1::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_1E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_2":[43,2,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_2::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_1_2::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_1_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2":[43,2,1,"_CPPv4NK7Splines10SplineSurf8eval_D_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf8eval_D_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf8eval_D_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2_2":[43,2,1,"_CPPv4NK7Splines10SplineSurf10eval_D_2_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2_2::x":[43,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_2_2E9real_type9real_type"],"Splines::SplineSurf::eval_D_2_2::y":[43,3,1,"_CPPv4NK7Splines10SplineSurf10eval_D_2_2E9real_type9real_type"],"Splines::SplineSurf::info":[43,2,1,"_CPPv4NK7Splines10SplineSurf4infoEv"],"Splines::SplineSurf::info::stream":[43,3,1,"_CPPv4NK7Splines10SplineSurf4infoER12ostream_type"],"Splines::SplineSurf::is_x_bounded":[43,2,1,"_CPPv4NK7Splines10SplineSurf12is_x_boundedEv"],"Splines::SplineSurf::is_x_closed":[43,2,1,"_CPPv4NK7Splines10SplineSurf11is_x_closedEv"],"Splines::SplineSurf::is_y_bounded":[43,2,1,"_CPPv4NK7Splines10SplineSurf12is_y_boundedEv"],"Splines::SplineSurf::is_y_closed":[43,2,1,"_CPPv4NK7Splines10SplineSurf11is_y_closedEv"],"Splines::SplineSurf::make_x_bounded":[43,2,1,"_CPPv4N7Splines10SplineSurf14make_x_boundedEv"],"Splines::SplineSurf::make_x_closed":[43,2,1,"_CPPv4N7Splines10SplineSurf13make_x_closedEv"],"Splines::SplineSurf::make_x_opened":[43,2,1,"_CPPv4N7Splines10SplineSurf13make_x_openedEv"],"Splines::SplineSurf::make_x_unbounded":[43,2,1,"_CPPv4N7Splines10SplineSurf16make_x_unboundedEv"],"Splines::SplineSurf::make_y_bounded":[43,2,1,"_CPPv4N7Splines10SplineSurf14make_y_boundedEv"],"Splines::SplineSurf::make_y_closed":[43,2,1,"_CPPv4N7Splines10SplineSurf13make_y_closedEv"],"Splines::SplineSurf::make_y_opened":[43,2,1,"_CPPv4N7Splines10SplineSurf13make_y_openedEv"],"Splines::SplineSurf::make_y_unbounded":[43,2,1,"_CPPv4N7Splines10SplineSurf16make_y_unboundedEv"],"Splines::SplineSurf::name":[43,2,1,"_CPPv4NK7Splines10SplineSurf4nameEv"],"Splines::SplineSurf::numPointX":[43,2,1,"_CPPv4NK7Splines10SplineSurf9numPointXEv"],"Splines::SplineSurf::numPointY":[43,2,1,"_CPPv4NK7Splines10SplineSurf9numPointYEv"],"Splines::SplineSurf::operator()":[43,2,1,"_CPPv4NK7Splines10SplineSurfclE9real_type9real_type"],"Splines::SplineSurf::operator()::x":[43,3,1,"_CPPv4NK7Splines10SplineSurfclE9real_type9real_type"],"Splines::SplineSurf::operator()::y":[43,3,1,"_CPPv4NK7Splines10SplineSurfclE9real_type9real_type"],"Splines::SplineSurf::setup":[43,2,1,"_CPPv4N7Splines10SplineSurf5setupERK16GenericContainer"],"Splines::SplineSurf::setup::gc":[43,3,1,"_CPPv4N7Splines10SplineSurf5setupERK16GenericContainer"],"Splines::SplineSurf::type_name":[43,2,1,"_CPPv4NK7Splines10SplineSurf9type_nameEv"],"Splines::SplineSurf::writeToStream":[43,2,1,"_CPPv4NK7Splines10SplineSurf13writeToStreamER12ostream_type"],"Splines::SplineSurf::writeToStream::s":[43,3,1,"_CPPv4NK7Splines10SplineSurf13writeToStreamER12ostream_type"],"Splines::SplineSurf::xMax":[43,2,1,"_CPPv4NK7Splines10SplineSurf4xMaxEv"],"Splines::SplineSurf::xMin":[43,2,1,"_CPPv4NK7Splines10SplineSurf4xMinEv"],"Splines::SplineSurf::xNode":[43,2,1,"_CPPv4NK7Splines10SplineSurf5xNodeE7integer"],"Splines::SplineSurf::xNode::i":[43,3,1,"_CPPv4NK7Splines10SplineSurf5xNodeE7integer"],"Splines::SplineSurf::yMax":[43,2,1,"_CPPv4NK7Splines10SplineSurf4yMaxEv"],"Splines::SplineSurf::yMin":[43,2,1,"_CPPv4NK7Splines10SplineSurf4yMinEv"],"Splines::SplineSurf::yNode":[43,2,1,"_CPPv4NK7Splines10SplineSurf5yNodeE7integer"],"Splines::SplineSurf::yNode::i":[43,3,1,"_CPPv4NK7Splines10SplineSurf5yNodeE7integer"],"Splines::SplineSurf::zMax":[43,2,1,"_CPPv4NK7Splines10SplineSurf4zMaxEv"],"Splines::SplineSurf::zMin":[43,2,1,"_CPPv4NK7Splines10SplineSurf4zMinEv"],"Splines::SplineSurf::zNode":[43,2,1,"_CPPv4NK7Splines10SplineSurf5zNodeE7integer7integer"],"Splines::SplineSurf::zNode::i":[43,3,1,"_CPPv4NK7Splines10SplineSurf5zNodeE7integer7integer"],"Splines::SplineSurf::zNode::j":[43,3,1,"_CPPv4NK7Splines10SplineSurf5zNodeE7integer7integer"],"Splines::SplineSurf::~SplineSurf":[43,2,1,"_CPPv4N7Splines10SplineSurfD0Ev"],"Splines::SplineType1D":[57,5,1,"_CPPv4N7Splines12SplineType1DE"],"Splines::SplineType1D::AKIMA_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D10AKIMA_TYPEE"],"Splines::SplineType1D::BESSEL_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D11BESSEL_TYPEE"],"Splines::SplineType1D::CONSTANT_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D13CONSTANT_TYPEE"],"Splines::SplineType1D::CUBIC_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D10CUBIC_TYPEE"],"Splines::SplineType1D::HERMITE_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D12HERMITE_TYPEE"],"Splines::SplineType1D::LINEAR_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D11LINEAR_TYPEE"],"Splines::SplineType1D::PCHIP_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D10PCHIP_TYPEE"],"Splines::SplineType1D::QUINTIC_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D12QUINTIC_TYPEE"],"Splines::SplineType1D::SPLINE_SET_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D15SPLINE_SET_TYPEE"],"Splines::SplineType1D::SPLINE_VEC_TYPE":[57,4,1,"_CPPv4N7Splines12SplineType1D15SPLINE_VEC_TYPEE"],"Splines::SplineType2D":[55,5,1,"_CPPv4N7Splines12SplineType2DE"],"Splines::SplineType2D::AKIMA2D_TYPE":[55,4,1,"_CPPv4N7Splines12SplineType2D12AKIMA2D_TYPEE"],"Splines::SplineType2D::BICUBIC_TYPE":[55,4,1,"_CPPv4N7Splines12SplineType2D12BICUBIC_TYPEE"],"Splines::SplineType2D::BILINEAR_TYPE":[55,4,1,"_CPPv4N7Splines12SplineType2D13BILINEAR_TYPEE"],"Splines::SplineType2D::BIQUINTIC_TYPE":[55,4,1,"_CPPv4N7Splines12SplineType2D14BIQUINTIC_TYPEE"],"Splines::SplineVec":[48,1,1,"_CPPv4N7Splines9SplineVecE"],"Splines::SplineVec::CatmullRom":[48,2,1,"_CPPv4N7Splines9SplineVec10CatmullRomEv"],"Splines::SplineVec::D":[48,2,1,"_CPPv4NK7Splines9SplineVec1DE9real_type7integer"],"Splines::SplineVec::D::i":[48,3,1,"_CPPv4NK7Splines9SplineVec1DE9real_type7integer"],"Splines::SplineVec::D::x":[48,3,1,"_CPPv4NK7Splines9SplineVec1DE9real_type7integer"],"Splines::SplineVec::DD":[48,2,1,"_CPPv4NK7Splines9SplineVec2DDE9real_type7integer"],"Splines::SplineVec::DD::i":[48,3,1,"_CPPv4NK7Splines9SplineVec2DDE9real_type7integer"],"Splines::SplineVec::DD::x":[48,3,1,"_CPPv4NK7Splines9SplineVec2DDE9real_type7integer"],"Splines::SplineVec::DDD":[48,2,1,"_CPPv4NK7Splines9SplineVec3DDDE9real_type7integer"],"Splines::SplineVec::DDD::i":[48,3,1,"_CPPv4NK7Splines9SplineVec3DDDE9real_type7integer"],"Splines::SplineVec::DDD::x":[48,3,1,"_CPPv4NK7Splines9SplineVec3DDDE9real_type7integer"],"Splines::SplineVec::DDDD":[48,2,1,"_CPPv4NK7Splines9SplineVec4DDDDE9real_type7integer"],"Splines::SplineVec::DDDD::i":[48,3,1,"_CPPv4NK7Splines9SplineVec4DDDDE9real_type7integer"],"Splines::SplineVec::DDDD::x":[48,3,1,"_CPPv4NK7Splines9SplineVec4DDDDE9real_type7integer"],"Splines::SplineVec::DDDDD":[48,2,1,"_CPPv4NK7Splines9SplineVec5DDDDDE9real_type7integer"],"Splines::SplineVec::DDDDD::i":[48,3,1,"_CPPv4NK7Splines9SplineVec5DDDDDE9real_type7integer"],"Splines::SplineVec::DDDDD::x":[48,3,1,"_CPPv4NK7Splines9SplineVec5DDDDDE9real_type7integer"],"Splines::SplineVec::SplineVec":[48,2,1,"_CPPv4N7Splines9SplineVec9SplineVecERK6string"],"Splines::SplineVec::SplineVec::name":[48,3,1,"_CPPv4N7Splines9SplineVec9SplineVecERK6string"],"Splines::SplineVec::build":[48,2,1,"_CPPv4N7Splines9SplineVec5buildERK16GenericContainer"],"Splines::SplineVec::build::gc":[48,3,1,"_CPPv4N7Splines9SplineVec5buildERK16GenericContainer"],"Splines::SplineVec::can_extend":[48,2,1,"_CPPv4NK7Splines9SplineVec10can_extendEv"],"Splines::SplineVec::curvature":[48,2,1,"_CPPv4NK7Splines9SplineVec9curvatureE9real_type"],"Splines::SplineVec::curvature::x":[48,3,1,"_CPPv4NK7Splines9SplineVec9curvatureE9real_type"],"Splines::SplineVec::curvature_D":[48,2,1,"_CPPv4NK7Splines9SplineVec11curvature_DE9real_type"],"Splines::SplineVec::curvature_D::x":[48,3,1,"_CPPv4NK7Splines9SplineVec11curvature_DE9real_type"],"Splines::SplineVec::dimension":[48,2,1,"_CPPv4NK7Splines9SplineVec9dimensionEv"],"Splines::SplineVec::dump_table":[48,2,1,"_CPPv4NK7Splines9SplineVec10dump_tableER12ostream_type7integer"],"Splines::SplineVec::dump_table::num_points":[48,3,1,"_CPPv4NK7Splines9SplineVec10dump_tableER12ostream_type7integer"],"Splines::SplineVec::dump_table::s":[48,3,1,"_CPPv4NK7Splines9SplineVec10dump_tableER12ostream_type7integer"],"Splines::SplineVec::eval":[48,2,1,"_CPPv4NK7Splines9SplineVec4evalERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval::i":[48,3,1,"_CPPv4NK7Splines9SplineVec4evalE9real_type7integer"],"Splines::SplineVec::eval::inc":[48,3,1,"_CPPv4NK7Splines9SplineVec4evalE9real_typePC9real_type7integer"],"Splines::SplineVec::eval::vals":[48,3,1,"_CPPv4NK7Splines9SplineVec4evalERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval::x":[48,3,1,"_CPPv4NK7Splines9SplineVec4evalERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_D":[48,2,1,"_CPPv4NK7Splines9SplineVec6eval_DERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_D::i":[48,3,1,"_CPPv4NK7Splines9SplineVec6eval_DE9real_type7integer"],"Splines::SplineVec::eval_D::inc":[48,3,1,"_CPPv4NK7Splines9SplineVec6eval_DE9real_typePC9real_type7integer"],"Splines::SplineVec::eval_D::vals":[48,3,1,"_CPPv4NK7Splines9SplineVec6eval_DERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_D::x":[48,3,1,"_CPPv4NK7Splines9SplineVec6eval_DERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DD":[48,2,1,"_CPPv4NK7Splines9SplineVec7eval_DDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DD::i":[48,3,1,"_CPPv4NK7Splines9SplineVec7eval_DDE9real_type7integer"],"Splines::SplineVec::eval_DD::inc":[48,3,1,"_CPPv4NK7Splines9SplineVec7eval_DDE9real_typePC9real_type7integer"],"Splines::SplineVec::eval_DD::vals":[48,3,1,"_CPPv4NK7Splines9SplineVec7eval_DDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DD::x":[48,3,1,"_CPPv4NK7Splines9SplineVec7eval_DDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDD":[48,2,1,"_CPPv4NK7Splines9SplineVec8eval_DDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDD::i":[48,3,1,"_CPPv4NK7Splines9SplineVec8eval_DDDE9real_type7integer"],"Splines::SplineVec::eval_DDD::inc":[48,3,1,"_CPPv4NK7Splines9SplineVec8eval_DDDE9real_typePC9real_type7integer"],"Splines::SplineVec::eval_DDD::vals":[48,3,1,"_CPPv4NK7Splines9SplineVec8eval_DDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDD::x":[48,3,1,"_CPPv4NK7Splines9SplineVec8eval_DDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDD":[48,2,1,"_CPPv4NK7Splines9SplineVec9eval_DDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDD::i":[48,3,1,"_CPPv4NK7Splines9SplineVec9eval_DDDDE9real_type7integer"],"Splines::SplineVec::eval_DDDD::inc":[48,3,1,"_CPPv4NK7Splines9SplineVec9eval_DDDDE9real_typePC9real_type7integer"],"Splines::SplineVec::eval_DDDD::vals":[48,3,1,"_CPPv4NK7Splines9SplineVec9eval_DDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDD::x":[48,3,1,"_CPPv4NK7Splines9SplineVec9eval_DDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDDD":[48,2,1,"_CPPv4NK7Splines9SplineVec10eval_DDDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDDD::i":[48,3,1,"_CPPv4NK7Splines9SplineVec10eval_DDDDDE9real_type7integer"],"Splines::SplineVec::eval_DDDDD::inc":[48,3,1,"_CPPv4NK7Splines9SplineVec10eval_DDDDDE9real_typePC9real_type7integer"],"Splines::SplineVec::eval_DDDDD::vals":[48,3,1,"_CPPv4NK7Splines9SplineVec10eval_DDDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::eval_DDDDD::x":[48,3,1,"_CPPv4NK7Splines9SplineVec10eval_DDDDDERK13vec_real_typeR16GenericContainer"],"Splines::SplineVec::info":[48,2,1,"_CPPv4NK7Splines9SplineVec4infoEv"],"Splines::SplineVec::info::stream":[48,3,1,"_CPPv4NK7Splines9SplineVec4infoER12ostream_type"],"Splines::SplineVec::is_closed":[48,2,1,"_CPPv4NK7Splines9SplineVec9is_closedEv"],"Splines::SplineVec::make_buonded":[48,2,1,"_CPPv4N7Splines9SplineVec12make_buondedEv"],"Splines::SplineVec::make_closed":[48,2,1,"_CPPv4N7Splines9SplineVec11make_closedEv"],"Splines::SplineVec::make_open":[48,2,1,"_CPPv4N7Splines9SplineVec9make_openEv"],"Splines::SplineVec::make_unbounded":[48,2,1,"_CPPv4N7Splines9SplineVec14make_unboundedEv"],"Splines::SplineVec::name":[48,2,1,"_CPPv4NK7Splines9SplineVec4nameEv"],"Splines::SplineVec::numPoints":[48,2,1,"_CPPv4NK7Splines9SplineVec9numPointsEv"],"Splines::SplineVec::operator()":[48,2,1,"_CPPv4NK7Splines9SplineVecclE9real_type7integer"],"Splines::SplineVec::operator()::i":[48,3,1,"_CPPv4NK7Splines9SplineVecclE9real_type7integer"],"Splines::SplineVec::operator()::x":[48,3,1,"_CPPv4NK7Splines9SplineVecclE9real_type7integer"],"Splines::SplineVec::search":[48,2,1,"_CPPv4NK7Splines9SplineVec6searchER9real_type"],"Splines::SplineVec::search::x":[48,3,1,"_CPPv4NK7Splines9SplineVec6searchER9real_type"],"Splines::SplineVec::setKnots":[48,2,1,"_CPPv4N7Splines9SplineVec8setKnotsEPK9real_type"],"Splines::SplineVec::setKnots::X":[48,3,1,"_CPPv4N7Splines9SplineVec8setKnotsEPK9real_type"],"Splines::SplineVec::setKnotsCentripetal":[48,2,1,"_CPPv4N7Splines9SplineVec19setKnotsCentripetalEv"],"Splines::SplineVec::setKnotsChordLength":[48,2,1,"_CPPv4N7Splines9SplineVec19setKnotsChordLengthEv"],"Splines::SplineVec::setKnotsFoley":[48,2,1,"_CPPv4N7Splines9SplineVec13setKnotsFoleyEv"],"Splines::SplineVec::setup":[48,2,1,"_CPPv4N7Splines9SplineVec5setupERK16GenericContainer"],"Splines::SplineVec::setup::Y":[48,3,1,"_CPPv4N7Splines9SplineVec5setupE7integer7integerPPK9real_type"],"Splines::SplineVec::setup::dim":[48,3,1,"_CPPv4N7Splines9SplineVec5setupE7integer7integerPPK9real_type"],"Splines::SplineVec::setup::gc":[48,3,1,"_CPPv4N7Splines9SplineVec5setupERK16GenericContainer"],"Splines::SplineVec::setup::ldY":[48,3,1,"_CPPv4N7Splines9SplineVec5setupE7integer7integerPK9real_type7integer"],"Splines::SplineVec::setup::npts":[48,3,1,"_CPPv4N7Splines9SplineVec5setupE7integer7integerPPK9real_type"],"Splines::SplineVec::type":[48,2,1,"_CPPv4NK7Splines9SplineVec4typeEv"],"Splines::SplineVec::xMax":[48,2,1,"_CPPv4NK7Splines9SplineVec4xMaxEv"],"Splines::SplineVec::xMin":[48,2,1,"_CPPv4NK7Splines9SplineVec4xMinEv"],"Splines::SplineVec::xNode":[48,2,1,"_CPPv4NK7Splines9SplineVec5xNodeE7integer"],"Splines::SplineVec::xNode::npt":[48,3,1,"_CPPv4NK7Splines9SplineVec5xNodeE7integer"],"Splines::SplineVec::xNodes":[48,2,1,"_CPPv4NK7Splines9SplineVec6xNodesEv"],"Splines::SplineVec::yNode":[48,2,1,"_CPPv4NK7Splines9SplineVec5yNodeE7integer7integer"],"Splines::SplineVec::yNode::j":[48,3,1,"_CPPv4NK7Splines9SplineVec5yNodeE7integer7integer"],"Splines::SplineVec::yNode::npt":[48,3,1,"_CPPv4NK7Splines9SplineVec5yNodeE7integer7integer"],"Splines::SplineVec::~SplineVec":[48,2,1,"_CPPv4N7Splines9SplineVecD0Ev"],"Splines::backtrace":[117,2,1,"_CPPv4N7Splines9backtraceER12ostream_type"],"Splines::centripetal":[102,2,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::alpha":[102,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::dim":[102,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::ld_pnts":[102,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::npts":[102,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::pnts":[102,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::centripetal::t":[102,3,1,"_CPPv4N7Splines11centripetalE7integer7integerPK9real_type7integer9real_typeP9real_type"],"Splines::checkCubicSplineMonotonicity":[103,2,1,"_CPPv4N7Splines28checkCubicSplineMonotonicityEPK9real_typePK9real_typePK9real_type7integer"],"Splines::checkCubicSplineMonotonicity::X":[103,3,1,"_CPPv4N7Splines28checkCubicSplineMonotonicityEPK9real_typePK9real_typePK9real_type7integer"],"Splines::checkCubicSplineMonotonicity::Y":[103,3,1,"_CPPv4N7Splines28checkCubicSplineMonotonicityEPK9real_typePK9real_typePK9real_type7integer"],"Splines::checkCubicSplineMonotonicity::Yp":[103,3,1,"_CPPv4N7Splines28checkCubicSplineMonotonicityEPK9real_typePK9real_typePK9real_type7integer"],"Splines::checkCubicSplineMonotonicity::npts":[103,3,1,"_CPPv4N7Splines28checkCubicSplineMonotonicityEPK9real_typePK9real_typePK9real_type7integer"],"Splines::chordal":[119,2,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::chordal::dim":[119,3,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::chordal::ld_pnts":[119,3,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::chordal::npts":[119,3,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::chordal::pnts":[119,3,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::chordal::t":[119,3,1,"_CPPv4N7Splines7chordalE7integer7integerPK9real_type7integerP9real_type"],"Splines::curvature":[110,2,1,"_CPPv4N7Splines9curvatureE9real_typeRK6SplineRK6Spline"],"Splines::curvature::X":[110,3,1,"_CPPv4N7Splines9curvatureE9real_typeRK6SplineRK6Spline"],"Splines::curvature::Y":[110,3,1,"_CPPv4N7Splines9curvatureE9real_typeRK6SplineRK6Spline"],"Splines::curvature::s":[110,3,1,"_CPPv4N7Splines9curvatureE9real_typeRK6SplineRK6Spline"],"Splines::curvature_D":[115,2,1,"_CPPv4N7Splines11curvature_DE9real_typeRK6SplineRK6Spline"],"Splines::curvature_D::X":[115,3,1,"_CPPv4N7Splines11curvature_DE9real_typeRK6SplineRK6Spline"],"Splines::curvature_D::Y":[115,3,1,"_CPPv4N7Splines11curvature_DE9real_typeRK6SplineRK6Spline"],"Splines::curvature_D::s":[115,3,1,"_CPPv4N7Splines11curvature_DE9real_typeRK6SplineRK6Spline"],"Splines::curvature_DD":[105,2,1,"_CPPv4N7Splines12curvature_DDE9real_typeRK6SplineRK6Spline"],"Splines::curvature_DD::X":[105,3,1,"_CPPv4N7Splines12curvature_DDE9real_typeRK6SplineRK6Spline"],"Splines::curvature_DD::Y":[105,3,1,"_CPPv4N7Splines12curvature_DDE9real_typeRK6SplineRK6Spline"],"Splines::curvature_DD::s":[105,3,1,"_CPPv4N7Splines12curvature_DDE9real_typeRK6SplineRK6Spline"],"Splines::get_region":[106,2,1,"_CPPv4N7Splines10get_regionE9real_type9real_type"],"Splines::get_region::alpha":[106,3,1,"_CPPv4N7Splines10get_regionE9real_type9real_type"],"Splines::get_region::beta":[106,3,1,"_CPPv4N7Splines10get_regionE9real_type9real_type"],"Splines::integer":[165,6,1,"_CPPv4N7Splines7integerE"],"Splines::max_abs":[116,2,1,"_CPPv4N7Splines7max_absE9real_type9real_type"],"Splines::max_abs::a":[116,3,1,"_CPPv4N7Splines7max_absE9real_type9real_type"],"Splines::max_abs::b":[116,3,1,"_CPPv4N7Splines7max_absE9real_type9real_type"],"Splines::min_abs":[112,2,1,"_CPPv4N7Splines7min_absE9real_type9real_type"],"Splines::min_abs::a":[112,3,1,"_CPPv4N7Splines7min_absE9real_type9real_type"],"Splines::min_abs::b":[112,3,1,"_CPPv4N7Splines7min_absE9real_type9real_type"],"Splines::new_Spline1D":[107,2,1,"_CPPv4N7Splines12new_Spline1DERK6string12SplineType1D"],"Splines::new_Spline1D::_name":[107,3,1,"_CPPv4N7Splines12new_Spline1DERK6string12SplineType1D"],"Splines::new_Spline1D::tp":[107,3,1,"_CPPv4N7Splines12new_Spline1DERK6string12SplineType1D"],"Splines::ostream_type":[166,6,1,"_CPPv4N7Splines12ostream_typeE"],"Splines::real_type":[167,6,1,"_CPPv4N7Splines9real_typeE"],"Splines::region_A":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_AE"],"Splines::region_B":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_BE"],"Splines::region_C":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_CE"],"Splines::region_D":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_DE"],"Splines::region_E":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_EE"],"Splines::region_M":[53,4,1,"_CPPv4N7Splines13REGION_ABCDEM8region_ME"],"Splines::signTest":[104,2,1,"_CPPv4N7Splines8signTestEK9real_typeK9real_type"],"Splines::signTest::a":[104,3,1,"_CPPv4N7Splines8signTestEK9real_typeK9real_type"],"Splines::signTest::b":[104,3,1,"_CPPv4N7Splines8signTestEK9real_typeK9real_type"],"Splines::spline_type_1D":[170,7,1,"_CPPv4N7Splines14spline_type_1DE"],"Splines::spline_type_2D":[171,7,1,"_CPPv4N7Splines14spline_type_2DE"],"Splines::uniform":[108,2,1,"_CPPv4N7Splines7uniformE7integer7integerPK9real_type7integerP9real_type"],"Splines::uniform::npts":[108,3,1,"_CPPv4N7Splines7uniformE7integer7integerPK9real_type7integerP9real_type"],"Splines::uniform::t":[108,3,1,"_CPPv4N7Splines7uniformE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal":[109,2,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal::dim":[109,3,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal::ld_pnts":[109,3,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal::npts":[109,3,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal::pnts":[109,3,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"Splines::universal::t":[109,3,1,"_CPPv4N7Splines9universalE7integer7integerPK9real_type7integerP9real_type"],"save_png::fname":[186,3,1,"_CPPv48save_png2in"],BaseHermite:[172,1,1,"_CPPv411BaseHermite"],SPLINES_CONFIG_HH:[51,0,1,"c.SPLINES_CONFIG_HH"],SPLINES_C_INTERFACE_H:[1,0,1,"c.SPLINES_C_INTERFACE_H"],SPLINES_HH:[50,0,1,"c.SPLINES_HH"],SPLINES_UTILS_HH:[52,0,1,"c.SPLINES_UTILS_HH"],SPLINE_build2:[6,2,1,"_CPPv413SPLINE_build2PKdPKdi"],SPLINE_build:[7,2,1,"_CPPv412SPLINE_buildv"],SPLINE_delete:[20,2,1,"_CPPv413SPLINE_deletePKc"],SPLINE_eval:[10,2,1,"_CPPv411SPLINE_evald"],SPLINE_eval_D:[9,2,1,"_CPPv413SPLINE_eval_Dd"],SPLINE_eval_DD:[15,2,1,"_CPPv414SPLINE_eval_DDd"],SPLINE_eval_DDD:[13,2,1,"_CPPv415SPLINE_eval_DDDd"],SPLINE_eval_DDDD:[12,2,1,"_CPPv416SPLINE_eval_DDDDd"],SPLINE_eval_DDDDD:[18,2,1,"_CPPv417SPLINE_eval_DDDDDd"],SPLINE_get_type_name:[14,2,1,"_CPPv420SPLINE_get_type_namev"],SPLINE_init:[11,2,1,"_CPPv411SPLINE_initv"],SPLINE_mem_ptr:[16,2,1,"_CPPv414SPLINE_mem_ptrPKc"],SPLINE_new:[19,2,1,"_CPPv410SPLINE_newPKcPKc"],SPLINE_print:[17,2,1,"_CPPv412SPLINE_printv"],SPLINE_push:[5,2,1,"_CPPv411SPLINE_pushdd"],SPLINE_select:[8,2,1,"_CPPv413SPLINE_selectPKc"],Spline1D:[173,1,1,"_CPPv48Spline1D"],Spline2D:[174,1,1,"_CPPv48Spline2D"],SplineSet:[175,1,1,"_CPPv49SplineSet"],SplineVec:[176,1,1,"_CPPv49SplineVec"],save_png:[186,2,1,"_CPPv48save_png2in"]}},objnames:{"0":["c","macro","C macro"],"1":["cpp","class","C++ class"],"2":["cpp","function","C++ function"],"3":["cpp","functionParam","C++ function parameter"],"4":["cpp","enumerator","C++ enumerator"],"5":["cpp","enum","C++ enum"],"6":["cpp","type","C++ type"],"7":["cpp","member","C++ member"]},objtypes:{"0":"c:macro","1":"cpp:class","2":"cpp:function","3":"cpp:functionParam","4":"cpp:enumerator","5":"cpp:enum","6":"cpp:type","7":"cpp:member"},terms:{"100":[172,187],"1000":[176,192],"120":136,"145":[174,190],"146":154,"148":[27,198],"164":[27,198],"168":139,"180":139,"192":139,"1970":[26,198],"1978":[27,198],"1980":[120,198],"1984":120,"2016":[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163],"2020":[188,197],"238":198,"246":198,"256":150,"300":120,"304":120,"360":139,"3rd":46,"4th":[12,26,28,34,35,36,37,38,39,40,41,42,44,46,48,172,173,187,189],"589":[26,198],"5th":[18,26,28,34,35,36,37,38,39,40,41,42,44,46,48,172,173,187,189],"600":193,"602":[26,198],"720":139,"break":[136,143,145,149,152,156,158],"case":[136,143,145,149,152,156,158,162],"char":[8,14,16,19,20,21,22,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,124,125,128,129,130,131,132,133,149,150,151,154,155,157,159,166,170,171],"class":[123,125,127,129,131,133,135,137,140,142,144,146,148,150,153,155,157,159,169,189,190,191,192,196,197,198],"const":[6,8,14,16,19,20,21,22,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,101,102,103,104,105,107,108,109,110,114,115,118,119,120,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,162,163,170,171],"default":[136,142,145,149,152,158],"enum":[137,143,146,155,169,197],"export":193,"final":[35,136,173,189],"float":167,"function":[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,124,143,169,172,173,174,175,176,187,188,189,190,191,192,193,196,197],"int":[5,6,7,8,11,17,19,20,21,22,46,104,124,143,150,155,165],"new":[19,21,149,156,158,172,187,189,190,191,192],"public":[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,123,125,127,129,131,133,135,137,140,142,144,146,148,150,153,155,157,159,172,173,174,175,176],"return":[21,22,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,103,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,172,173,174,175,176,187,188,189,190,191,192,193],"static":[21,101,104,106,107,111,112,113,116,122,124,136,143,145,154,155,156,162,163,171,188],"switch":[136,143,145,149,152,156,158,162],"throw":154,"true":[27,29,30,31,32,33,43,45,134,138,141,142,147,152,153,155,160,173,174,189,190,191,192],"universit\u00e0":198,"void":[16,21,22,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,101,102,108,109,111,113,114,117,118,119,120,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163],"while":[122,126,136,138,143,145,149,152,154,188],AND:[163,197],ARE:[163,197],BUT:[163,197],FOR:[163,197],NOT:[149,163,197],SUCH:[163,197],THE:[163,197],The:[163,172,174,176,187,190,192,198],USE:[163,197],Use:[26,28,34,35,36,37,38,39,40,42],Using:198,___:[123,125,126,127,129,131,133,135,137,139,140,142,143,144,145,146,148,150,151,153,154,155,156,157,159,162,163],____:[123,125,126,127,129,131,133,135,137,139,140,142,143,144,145,146,148,150,151,153,154,155,156,157,159],_____:[125,142,151,159],______:[154,155],__clang__:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162],__cplusplu:22,__file__:[122,126,136,143,145],__gnuc__:[155,161],__header:151,__line__:[122,126,136,143,145],__y:151,__yp:151,_is_monoton:149,_memeori:148,_memori:[135,142,155],_msc_ver:154,_name:[107,156],_nspl:151,_pointer:[149,152],_spline:149,_valu:[149,152],about:[27,29,30,31,32,33,43],abov:[163,197],abs:[122,143,145,149,152,154,162],abssl:143,abssr:143,acc:152,access:[26,28,34,35,36,37,38,39,40,41,42,44,46],accumul:124,acm:[26,27,198],actual:[11,14,17],add:[26,28,34,35,36,37,38,39,40,41,42,44],adjust:143,advis:[163,197],again:130,akima2d:124,akima2d_typ:[55,155,158],akima2dsplin:[29,61,121,124,125,155,158,164,168,197],akima2dsplineclass:[49,164],akima:[26,27,44,45,145,154,156,170,171,173,174,175,189,190,191,198],akima_build:[122,123,145],akima_on:122,akima_quint:[56,145,146],akima_typ:[21,57,123,149,155,156],akimasmooth:124,akimasplin:[21,42,59,121,122,123,149,155,156,164,168,197],akimasplineclass:[49,164],algorithm:[45,48,176,192,197],alia:[27,29,30,31,32,33,43],alias:[26,28,34,35,36,37,38,39,40,41,42,44],align:[190,192],all:[46,48,154,163,197],alloc:[26,28,34,35,36,37,38,39,40,41,42,44,134,136,138,141,145,147,149,151,152,153,154,155],allow:149,along:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,45,173,189],alongh:[134,138,141,147],alpha:[102,106,143,154,155,162],alreadi:[134,138,141,147],ammetto:154,anal:120,analysi:198,ani:[163,173,174,175,189,190,191,197],anoth:[46,150],apb:143,api:197,approach:48,approxim:[154,163,172,187],approximate_length:[172,187],april:120,arch:188,argument:[6,149,172,187],aris:[163,197],arrai:[172,175,187,191],aspetto:160,assign:45,associ:[55,57],assum:[27,29,30,31,32,33,43,45,143,154],author:163,auto:149,avail:[149,154,198],avoid:45,azzera:154,b00:124,b00x:124,b00y:124,b01:124,b10:124,b11:124,background:193,backtrac:[91,121,155,164,168,197],bad:[149,154],base5:[172,187],base5_d:[172,187],base5_dd:[172,187],base5_ddd:[172,187],base5_dddd:[172,187],base5_ddddd:[172,187],base:[45,111,113,138,139,147,152,155,164,168,187,194,195,197],base_d:[138,139,147,152,155,172,187],base_dd:[138,139,147,152,155,172,187],base_ddd:[138,139,147,152,155,172,187],base_dddd:[139,147,155],base_ddddd:[139,147,155],basehermit:[185,194,195,196,197],basehermiteclass:[177,194],basehermitewrapp:[187,188],basepoint:[149,152],basevalu:[149,152],basi:[172,187],basic_ostream:[155,166],bc0:[35,136,137],bc_begin:[35,136],bc_end:[35,136],bcn:[35,136,137],begin:[130,151,154,172,187],bertolazzi:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,197,198],bessel:[28,44,145,154,156,170,173,175,189,191],bessel_build:[126,127,145],bessel_quint:[56,145,146],bessel_typ:[21,57,127,149,155,156],besselsplin:[21,42,63,121,126,127,149,155,156,164,168,197],besselsplineclass:[49,164],beta:[106,143,162],bezier:[172,187],bezier_to_hermit:[172,187],bicub:[45,124,128,154,171,174,190],bicubic_typ:[55,155,158],bicubicsplin:[29,65,121,128,129,155,158,164,168,197],bicubicsplinebas:[27,30,43,65,121,125,129,160,164,168,197],bicubicsplinebaseclass:[49,164],bicubicsplineclass:[49,164],bili3:[129,160],bili5:[131,160],bilinear3:[139,155,160],bilinear5:[139,155,160],bilinear:[31,45,132,154,171,174,190],bilinear_typ:[55,155,158],bilinearsplin:[43,69,121,132,133,155,158,164,168,197],bilinearsplineclass:[49,164],bin:[188,193],binari:[26,28,34,35,36,37,38,39,40,41,42,149,163,197],binarysearch:[46,86,121,149,150,151,153,155,164,168,197],binarysearchclass:[49,164],biquint:[45,130,154,171,174,190],biquintic_typ:[55,155,158],biquinticsplin:[32,67,121,130,131,155,158,164,168,197],biquinticsplinebas:[33,43,67,121,131,160,164,168,197],biquinticsplinebaseclass:[49,164],biquinticsplineclass:[49,164],bivari:[27,160,198],block:[140,155,187,189,190,191,192],blue:[176,192],bool:[5,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,134,135,138,141,142,145,147,148,149,152,153,154,155,157,159,160],boor:35,border:35,bot:[136,162],boudari:35,bound:[27,29,30,31,32,33,43,45],boundari:[35,122,151],brodli:143,build:[6,7,21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,122,123,126,127,128,130,134,135,136,137,138,139,140,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156,157,159,160,172,173,174,175,176,187,189,190,191,192,198],build_linux:198,build_osx:198,build_win:198,built:198,buona:149,busi:[163,197],butland:[120,143],by0:124,by1:124,c_str:[122,126,134,136,139,141,143,145,151,154,160],calcolo:[122,126,128,130],can:[138,141,147,149,172,173,174,175,187,189,190,191,198],can_extend:[48,153],cancel:[27,29,30,31,32,33,43,44,45],cannot:[139,149],carlson:[120,198],caso:126,catmul:[48,176,192],catmullrom:[48,152,153,176,192],caus:[163,197],cbrt:154,cccccc:[172,187],ccfile:[4,23,100,164],cell:[175,191],center:[143,190,192],centripet:[48,90,121,154,155,164,168,176,192,197],cerca:[122,126,136,143,145,149,151],cerco:149,cerr:155,cfs:[26,28,34,35,36,37,38,39,40,41,42,44,134,135,138,141,142,147,148,155,157],chang:[26,28,34,35,36,37,38,39,40,41,42,44,143],check:[21,103,143,149,154,173,174,189,190],checkcubicsplinemonoton:[90,121,149,154,155,164,168,197],checknan:[122,126,136,143,145],chordal:[48,90,121,154,155,164,168,176,192,197],clang:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162],classdef:[187,189,190,191,192],classif:149,clc:188,clear:[21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,134,135,138,141,142,147,148,149,150,151,155,157,159,160,188],close:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,45,48,151,155,173,174,189,190],cmath:[58,60,64,66,68,79,81,85,87,88,90,96,122,124,128,130,132,143,145,149,151,152,154,160],cmd1:188,cmd:188,code:[163,187,189,190,191,192,197],coeff:[26,28,34,35,36,37,38,39,40,41,42,44,134,135,138,141,142,147,148,155,157],coeffici:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,124],color:[176,192,193],column:[27,29,30,31,32,33,43,45,46,102,108,109,114,118,119,150,151,172,187],compat:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162],compil:[188,197],compilesplineslib:[185,194,196,198],completar:152,completenam:188,compon:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48],comput:[48,102,105,108,109,110,114,115,118,119,120,149,173,174,188,189,190],computechord:[152,153],conclus:163,condit:[35,163,197],consequenti:[163,197],consit:35,const_cast:151,const_iter:151,constant:[34,44,142,151,154,156,170,173,189],constant_typ:[21,57,135,149,151,155,156],constantsplin:[21,41,71,121,134,135,149,155,156,164,168,197],constantsplineclass:[49,164],construct:[26,45,120,174,176,190,192],constructor:[21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,162],contain:[2,26,28,34,35,36,37,38,39,40,41,42,46,48,163],contenttyp:193,continu:[124,154,173,175,189,191],contract:[163,197],contributor:[163,197],convert:[111,113],coordin:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,173,175,176,189,191,192],copi:155,copia:154,copy_n:[138,147,149,152,154],copyright:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,197],copysplin:[26,28,35,36,38,39,40,42,138,147,148,155],copyto_vec_r:[122,126,134,136,139,141,143,145,151,154,160],copyto_vec_str:151,correspond:[26,28,34,35,36,37,38,39,40,41,42,173,189],cosa:160,count:143,cout:[21,143,149,198],creat:19,crescent:[122,126,136,143,145],cubic:[29,30,33,35,38,42,44,45,103,120,145,149,154,156,170,172,173,174,175,187,189,190,191,198],cubic_quint:[56,145,146],cubic_spline_type_bc:[35,73,121,136,137,164,168,197],cubic_spline_type_bcenum:[49,164],cubic_typ:[21,57,137,149,155,156],cubicsplin:[21,42,73,121,136,137,149,155,156,164,168,197,198],cubicspline_build:[136,137,145],cubicsplinebas:[26,28,35,36,38,41,91,121,123,127,137,138,140,144,155,164,168,197],cubicsplinebaseclass:[49,164],cubicsplineclass:[49,164],cur:192,cur_d:192,curv:[26,27,105,110,115,176,192],curvatur:[48,90,105,115,121,152,153,154,155,164,168,176,192,197],curvature_d:[48,90,121,152,153,154,155,164,168,176,192,197],curvature_dd:[90,121,154,155,164,168,197],cut:[172,187],cx1:124,cx2:124,cx3:124,cxxabi:154,cxxflag:188,cy1:124,cy1a:124,cy2:124,cy2a:124,cy3:124,cy3a:124,damag:[163,197],data:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,103,136,143,149,150,151,154,160,163,172,187,197,198],data_i:149,data_typ:[47,149,150,151],data_x:149,data_yp:149,datai:151,ddc:145,ddd:[21,26,28,34,35,36,37,38,39,40,41,42,44,46,48,135,138,142,147,148,149,150,152,153,154,155,157,198],dddd:[21,26,28,34,35,36,37,38,39,40,41,42,44,46,48,147,148,150,153,154,155,157],ddddd:[21,26,28,34,35,36,37,38,39,40,41,42,44,46,48,147,148,150,153,155,157],dddddp:[187,189],ddddp:[187,189],dddp:[187,189,191,192],dddt:149,ddh0:160,ddh1:160,ddl:[145,162],ddll:162,ddp0:[113,147,155],ddp1:[113,147,155],ddp:[187,189,191,192],ddr:[145,162],ddrr:162,ddt:149,debug:161,decid:124,defin:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,53,54,55,56,57,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,154,155,157,161,163,165,166,167,169,170,171,172,173,174,175,176,186,187,189,190,197],definit:[25,124,143,169,196],defiv:[26,28,35,36,38,42],degener:149,degli:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,198],degre:[172,187],del1:143,del2:143,delet:[20,21,26,28,34,35,36,37,38,39,40,41,42,150,153,155,156,157,158,159,187,188,189,190,191,192],delta:[122,143],den:122,depentend:46,dequ:21,deriv2_3p_l:136,deriv2_3p_r:136,deriv2_4p_l:136,deriv2_4p_r:136,deriv2_5p_l:136,deriv2_5p_r:136,deriv:[9,12,13,15,18,26,27,28,30,31,33,34,35,36,37,38,39,44,45,46,48,105,115,124,128,130,132,149,155,157,163,164,168,172,173,174,175,176,187,189,190,191,192,197,198],deriv_left:162,deriv_right:162,descript:25,destructor:[26,28,35,36,38,39,41,43,44,46,48],detail:25,deve:151,develop:197,dh0:160,dh1:160,di_m1:122,di_m2:122,di_p1:122,diagnost:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162],differ:151,dim:[48,102,108,109,114,118,119,130,152,153,154,155,176,192],dimens:[27,29,30,31,32,33,43,45,48,102,108,109,114,118,119,153,176,192],dipartimento:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,198],dir:188,direct:[27,29,30,31,32,33,43,45,124,143,163,174,190,197],directori:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162],disclaim:[163,197],disp:188,distanc:[124,176,192],distribut:[27,102,108,109,114,118,119,163,197,198],dll:[162,163],dlll:[162,163],dmax:143,dmin:143,dnm:124,document:[21,22,23,24,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,168,187,188,189,190,191,192,193,194,195,197],done:[149,154,174,176,188,190,192],doppi:154,doubl:[5,6,9,10,12,13,15,18,21,22,155,167,198],doxygen_should_skip_thi:[21,122,123,124,126,127,128,130,132,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,154,155,160,162,163],dp0:[111,113,138,145,147,155,162,163],dp1:[111,113,138,147,155],dpl:[145,162,163],dpr:[145,162,163],drat1:143,drat2:143,drop:[26,28,34,35,36,37,38,39,40,41,42,44],dropback:[26,28,34,35,36,37,38,39,40,41,42,44,155,157],drr:[162,163],drrr:[162,163],dsave:143,dsplines_do_not_use_generic_contain:188,dst:154,dt2:149,dt3:149,dump:[26,28,34,35,36,37,38,39,40,41,42,44,154,155,157],dump_data:[27,29,30,31,32,33,43,45,155,159,160],dump_tabl:[46,48,149,150,152,153],duplic:[149,154],dx00:[124,128,130],dx01:[124,128,130],dx10:[124,128,130],dx11:[124,128],dx2:136,dxf:124,dxi:124,dxnode:[27,29,30,32,33,129,131],dxx:[27,29,30,31,32,33,43,45,129,130,131,133,155,159,160,174,190],dxxnode:[32,33,131],dxxy:160,dxxyi:160,dxy:[27,29,30,31,32,33,43,45,124,129,130,131,133,155,159,160,174,190],dxyf:124,dxyi:[124,160],dxynod:[27,29,30,32,33,129,131],dy00:[124,128,130],dy01:[124,128,130],dy0:162,dy10:[124,128,130],dy11:[124,128,130],dy1:162,dya:149,dyb:149,dyf:124,dyi:[27,29,30,31,32,33,43,45,124,129,130,131,133,155,159,160,174,190],dyll:162,dyn:162,dynam:188,dynm1:162,dynod:[27,29,30,32,33,129,131],dyrr:162,dyynod:[32,33,131],dz00:124,dz01:124,dz02:124,dz03:124,dz0:124,dz10:124,dz11:124,dz12:124,dz13:124,dz1:124,dz20:124,dz21:124,dz22:124,dz23:124,dz2:124,dz30:124,dz31:124,dz32:124,dz33:124,dz3:124,dzxy11:124,dzxy12:124,dzxy13:124,dzxy21:124,dzxy22:124,dzxy23:124,dzxy31:124,dzxy32:124,dzxy33:124,each:[46,55,57,175,191],edit:198,either:163,element:[11,14,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],els:[21,122,124,126,134,136,138,141,143,145,147,149,151,154,156,160],elseif:188,email:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,198],empti:[11,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,134,138,141,147,176,192],enabl:161,end:[21,130,151,154,172,187,188,189,190,191,192,193],endif:[21,22,122,123,124,126,127,128,130,132,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,151,152,154,155,156,158,160,161,162,163],endrst:[187,189,190,191,192],enough:124,enought:[122,126,136,143,145],enrico:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,197,198],enumer:[53,54,55,56,57],eof:[21,22,123,125,129,131,133,135,137,140,142,144,146,148,150,153,157,159],epsi:[122,124],eqnarrai:[172,187],equat:[172,187],equispac:[27,29,30,31,32,33,43],eras:21,error:[173,174,189,190],essenti:124,esser:151,esserci:151,estim:124,estrapol:[27,29,30,31,32,33,43,45],eval2:[46,149,150,151],eval2_d:[46,149,150,151],eval2_dd:[46,149,150,151],eval2_ddd:[46,149,150,151],eval5:[172,187],eval5_d:[172,187],eval5_dd:[172,187],eval5_ddd:[172,187],eval5_dddd:[172,187],eval5_ddddd:[172,187],eval:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,138,141,147,149,150,151,152,153,155,157,159,172,173,174,175,176,187,188,189,190,191,192],eval_curvatur:192,eval_curvature_d:192,eval_d:[26,28,34,35,36,37,38,39,40,41,42,44,46,48,149,150,151,152,153,155,157,172,173,175,176,187,189,191,192],eval_d_1:[27,29,30,31,32,33,43,45,155,159],eval_d_1_1:[27,29,30,31,32,33,43,45,155,159],eval_d_1_2:[27,29,30,31,32,33,43,45,155,159],eval_d_2:[27,29,30,31,32,33,43,45,155,159],eval_d_2_2:[27,29,30,31,32,33,43,45,155,159],eval_dd:[26,28,34,35,36,37,38,39,40,41,42,44,46,48,149,150,151,152,153,155,157,172,173,175,176,187,189,191,192],eval_ddd:[26,28,34,35,36,37,38,39,40,41,42,44,46,48,149,150,151,152,153,155,157,172,173,175,176,187,189,191,192],eval_dddd:[26,28,34,35,36,37,38,39,40,41,42,44,46,48,150,153,155,157,173,189],eval_ddddd:[26,28,34,35,36,37,38,39,40,41,42,44,46,48,150,153,155,157,173,189],eval_di:[174,190],eval_dx:[174,190],eval_dxi:[174,190],eval_dxx:[174,190],eval_dyi:[174,190],eval_y_min_max:[173,189],evalu:[9,10,12,13,15,18,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,149,150,172,173,174,175,176,187,189,190,191,192],evalut:34,even:[163,197],event:[163,197],exampl:[174,190],examplesurf:190,examplevec:192,except:155,exemplari:[163,197],exist:[21,122,126,134,136,139,141,143,145,151,154,159,160],expect:[149,151,152,156,160],exportgraph:193,express:[163,197],extend:[142,151],extend_const:151,extern:[21,22,26,28,34,35,36,37,38,39,40,42,155,188],extra:122,extrapol:[27,29,30,31,32,33,35,43,124,136,173,174,189,190],extrapolate2:124,extrapolate3:124,extrapolate_bc:[54,136,137,145],factor:[102,124],fail:156,fals:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,134,135,136,138,141,142,145,147,148,149,152,153,155,157,159,160],fanghung:[91,121,154,155,164,168,197],fare:122,field:[122,126,134,136,139,141,143,145,151,154,159,160],file:[1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,53,54,55,56,57,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,165,166,167,170,171,172,173,174,175,176,186,197,198],filepart:188,fill:[46,48,130],fill_n:[124,128],find:[21,26,28,34,35,36,37,38,39,40,41,42,134,138,141,147,149,151],finit:124,first:[9,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,149,151,163,198],first_deriv3p_c:[162,163],first_deriv3p_l:[162,163],first_deriv3p_r:[162,163],first_deriv4p_l:[162,163],first_deriv4p_r:[162,163],first_deriv5p_c:[162,163],first_deriv5p_l:[162,163],first_deriv5p_r:[162,163],first_derivative_build:[143,162,163],fist:[46,48],fit:[26,27,163,197,198],flag:[149,154],fmt:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,159,160],fname:[26,28,34,35,36,37,38,39,40,41,42,44,155,157,186,193],folei:48,foleynielsen:[91,121,154,155,164,168,197],follow:[163,174,176,190,192,197],fontsiz:[174,190],forc:188,form:[111,113,163,197],format:[122,126,134,136,139,141,143,145,149,151,152,154,159,160],formula:143,fortran:[27,29,30,31,32,33,43,45,102,108,109,114,118,119],fortran_storag:[27,29,30,31,32,33,43,45,155,159,160],found:[46,149,151,160],fpclassifi:163,fprintf:188,free:[131,134,138,141,145,147,149,152,160],freebsd:163,friend:155,fritsch:[120,198],from:[38,39,151],front:[138,149,151,152,155,157],fstream:[91,155],full:197,gc_boundari:151,gc_header:151,gc_integ:151,gc_map:151,gc_mat_real:[151,160],gc_namespac:[122,126,134,136,139,141,143,145,151,152,154,155,156,160],gc_vec_bool:151,gc_vec_integ:[151,160],gc_vec_long:160,gc_vec_real:[122,126,134,136,139,141,143,145,151,154,156,160],gc_vec_str:151,gc_vector:[151,160],gc_x:[122,126,134,136,139,141,143,145,154,160],gc_y:[122,126,134,136,139,141,143,145,154,160],gc_ydata:151,gc_yp:139,gc_ypdata:151,gc_z:160,gca:[174,190],gcc:[155,161],gcf:193,gener:[26,28,34,35,36,37,38,39,40,41,42,46,151],genericcontain:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,97,122,123,126,127,134,135,136,137,139,140,141,142,143,144,145,146,150,151,152,153,154,155,156,157,159,160,161],get:[14,16,26,28,34,35,36,37,38,39,40,41,42,44,45,176,192],get_bool:151,get_elem:[47,150,151],get_head:[46,149,150],get_id:[152,154],get_if_exist:160,get_knot:[176,192],get_map:151,get_mat_r:[151,160],get_num_el:[151,160],get_number_at:160,get_region:[79,121,143,164,168,197],get_str:[136,145,156,159],get_typ:[151,160],get_type_nam:[151,160],get_vec_r:151,get_vector:[151,160],getcolumn:151,getnod:192,getposit:[46,149,150],getrealroot:149,getrootsinopenrang:[138,147],getsplin:[46,149,150,151],github:198,given:[163,172,173,174,187,189,190],good:[163,197],greather:[149,152],green:[176,192],group:46,h_0:[111,113,172,187],h_1:[111,113,172,187],h_2:[111,113,172,187],h_3:[111,113,172,187],h_4:[113,172,187],h_5:[113,172,187],h_to_po:151,handl:[172,173,174,175,176,187,189,190,191,192],hdr:[46,149,150],head:21,header:[26,28,34,35,36,37,38,39,40,41,42,44,46,149,150,151,154,155,157],hermit:[36,38,111,113,154,170,172,173,175,187,189,191],hermite3:[138,139,152,155,160],hermite3_d:[138,139,152,155,160],hermite3_dd:[138,139,152,155,160],hermite3_ddd:[138,139,152,155],hermite3topoli:[91,121,138,155,164,168,197],hermite5:[139,147,155,160],hermite5_d:[139,147,155,160],hermite5_dd:[139,147,155,160],hermite5_ddd:[139,147,155],hermite5_dddd:[139,147,155],hermite5_ddddd:[139,147,155],hermite5topoli:[91,121,147,155,164,168,197],hermite_to_bezi:[172,187],hermite_typ:[57,140,149,155,156],hermitesplin:[42,76,121,139,140,149,164,168,197],hermitesplineclass:[49,164],hhfile:[100,164],hhll:162,hhrr:162,hidden:[189,190,191,192],hierarchi:197,hiroshi:[26,27,198],hl2:[145,162],hl3:145,hl4:162,hll:[136,145,162,163],hlll:[136,162,163],hllll:136,hlr:162,hold:[176,192],holder:[163,197],howev:[163,197],hr2:[145,162],hr3:145,hr4:162,hrpl:162,hrr:[136,145,162,163],hrrr:[136,162,163],hrrrr:136,hsum:143,hxx:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,44,45,46,47,48,54,56,91,100,155,164,169],hxxfile:[100,164],hypot:152,i00:[124,128,130,132,160],i01:[124,128,130,132,160],i0j0:124,i10:[124,128,130,132,160],i11:[124,128,130,132,160],i_max_po:[26,28,34,35,36,37,38,39,40,41,42,134,135,138,141,142,147,148,155,173,189],i_min_po:[26,28,34,35,36,37,38,39,40,41,42,134,135,138,141,142,147,148,155,173,189],iadd:124,ibegin:[122,126,136,143,145],id_d:[26,28,34,35,36,37,38,39,40,41,42,44,135,138,141,142,147,148,155,157],id_dd:[26,28,34,35,36,37,38,39,40,41,42,44,135,138,142,147,148,155,157],id_ddd:[26,28,34,35,36,37,38,39,40,41,42,44,135,138,142,147,148,155,157],id_dddd:[26,28,34,35,36,37,38,39,40,41,42,44,147,148,155,157],id_ddddd:[26,28,34,35,36,37,38,39,40,41,42,44,147,148,155,157],id_ev:[26,28,34,35,36,37,38,39,40,41,42,44,134,135,138,141,142,147,148,155,157],id_po:149,idx:[138,141,147,150,151],iend:[122,126,136,143,145],ierr:143,ifdef:[21,22,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162],ifndef:[21,22,122,123,124,126,127,128,130,132,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,154,155,160,161,162,163],ignor:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162],ignoredarg:172,imag:[190,192,193],imax:124,imin:124,implement:[55,57,138,147,155,197,198],impli:[163,197],inc:[48,152,153],inci:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,134,135,138,139,149,150,154,155,156,157,159,160],incident:[163,197],includ:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162,163,169,197,198],increment:[26,28,34,35,36,37,38,39,40,41,42,198],incx:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,134,135,138,139,154,155,156,157,159,160],incyi:[26,28,35,36,38,42],incyp:[26,28,35,36,38,42,138,155],indep:[46,149,150,151],independ:[46,149,150],index:[27,29,30,31,32,33,43],indirect:[163,197],industrial:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,198],infinit:124,info:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,149,150,152,153,154,155,157,159,160],inform:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],ingegneria:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,198],inherit:[164,168,194,195,197],initi:[35,48,124,136,173,174,175,176,189,190,191,192],initlastinterv:[134,138,141,147,152,153,154,155],initlastinterval_i:[154,155,160],initlastinterval_x:[154,155,160],inlin:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,104,111,112,113,116,124,136,143,154,155,163],inmem:188,input:[174,190],insert:[7,26,28,34,35,36,37,38,39,40,41,42,44,47,149,150,154],instal:198,instanc:[189,190,191,192],instanti:[174,176,190,192],integ:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,91,101,102,103,108,109,114,118,119,120,121,122,123,124,126,127,128,129,130,131,132,134,135,136,137,138,139,140,141,142,143,144,145,147,148,149,150,151,152,153,154,155,156,157,159,160,162,163,164,168,197],interfac:[2,197,198],interior:[143,162],intern:[16,26,27,28,29,30,31,32,33,34,35,36,37,40,41,42,43],interpol:[5,27,38,48,120,130,143,162,176,192,197,198],interpret:163,interrupt:[163,197],intersect:[149,150,151],intersezion:149,interv:[26,28,34,35,36,37,38,39,40,41,42,44,122,149,172,173,187,189],intervallo:[122,126,136,143,145,149],introduct:197,iomanip:[60,64,66,68,70,74,77,83,96,124,128,130,132,134,138,141,147,160],ipos_c:[124,128,129,130,131,132,155,160],ipos_f:[155,160],irregularli:[27,198],is_bound:[26,28,34,35,36,37,38,39,40,41,42,44,155,157,173,189],is_clos:[26,28,34,35,36,37,38,39,40,41,42,44,48,153,155,157,173,189],is_extended_const:[26,28,34,35,36,37,38,39,40,41,42,155,173,189],is_po:151,is_x_bound:[27,29,30,31,32,33,43,45,155,159,174,190],is_x_clos:[27,29,30,31,32,33,43,45,155,159,174,190],is_y_bound:[27,29,30,31,32,33,43,45,155,159,174,190],is_y_clos:[27,29,30,31,32,33,43,45,155,159,174,190],ismac:188,ismonoton:[46,150],ispc:188,ispl:151,isunix:188,iszero:[143,149,154],item:151,iter:[21,151],its:[174,190],jadd:124,jmax:124,jmin:124,journal:[26,120,198],june:120,kappa:[176,192],kei:[46,149],kind:[26,28,34,35,36,37,38,39,40,41,42,173,174,175,189,190,191],knot:[35,48,176,192],know:44,known:[26,28,35,36,37,38,39,40,41,42],l2_first_deriv:[172,187],l2_second_deriv:[172,187],l2_third_deriv:[172,187],largearraydim:188,last:[26,28,34,35,36,37,38,39,40,41,42,44],lastinterv:154,ld_pnt:[102,108,109,114,118,119,154,155],ldflag:188,ldy:[48,152,153],ldz:[27,29,30,31,32,33,43,45,155,159,160],lead:[27,29,30,31,32,33,43,45,48,102,108,109,114,118,119],leggo:151,length:[48,172,187,188],lettura:160,liabil:[163,197],liabl:[163,197],lib_obj:188,lib_src:188,libgcc:188,libstdc:188,libunwind:154,limit:[85,87,88,90,149,151,152,154,163,197],linear:[37,44,136,142,143,145,154,156,162,170,172,173,174,175,187,189,190,191],linear_typ:[21,57,142,149,155,156],linearsplin:[21,41,78,121,141,142,149,155,156,164,168,197],linearsplineclass:[49,164],linewidth:[176,192],link:[188,198],linklib:188,linspac:[176,192],linux:198,list:[2,3,25,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,169,178,179,180,181,182,183,184,196,197],lmat:188,lmatlabdataarrai:188,lmex:188,lmx:188,load:[21,122,124,126,128,129,130,131,132,134,136,138,139,141,143,145,147,160,176,192],load_z:[155,160],local:[26,27,120,193],loop:[143,162],loss:[163,197],lower_bound:[149,155],lst_cc:188,m_b:[152,153,154,155],m_baseint:[149,150],m_basepoint:[149,150,152,153],m_basesplin:[149,150],m_basevalu:[134,135,138,141,142,147,148,149,150,152,153,155],m_bc0:[136,137],m_bcn:[136,137],m_bs_x:[154,155],m_bs_y:[154,155],m_curve_can_extend:[138,141,147,152,153,154,155],m_curve_extended_const:[138,141,142,147,155],m_curve_is_clos:[152,153,154,155],m_dim:[152,153],m_dx:[124,128,129,130,131,160],m_dxx:[130,131,160],m_dxxy:[130,131,160],m_dxxyi:[130,131,160],m_dxy:[124,128,129,130,131,160],m_dxyi:[130,131,160],m_dy:[124,128,129,130,131,160],m_dyi:[130,131,160],m_external_alloc:[134,135,138,141,142,147,148,155],m_header_to_posit:[149,150,151],m_is_monoton:[149,150],m_mem:[155,160],m_mem_bicub:[124,128,129],m_name:[122,126,134,136,139,141,143,145,149,150,151,152,153,154,155,156,157,158,159,160],m_npt:[122,126,134,136,138,141,143,145,147,149,150,151,152,153,154,155],m_npts_reserv:[134,138,141,147,154,155],m_nspl:[149,150,151],m_nx:[124,128,129,130,132,133,154,155,160],m_ny:[124,128,129,130,132,133,154,155,160],m_pspline:[156,157],m_q_sub_typ:[145,146],m_spline:[149,150,151],m_spline_2d:[158,159],m_x:[122,124,126,128,129,130,132,133,134,136,138,141,143,145,147,149,150,152,153,154,155,160],m_x_can_extend:[154,155],m_x_close:[154,155],m_y:[122,124,126,128,129,130,132,133,134,136,138,141,143,145,147,149,150,152,153,154,155,160],m_y_can_extend:[154,155],m_y_clos:[154,155],m_ymax:[149,150],m_ymin:[149,150],m_yp:[122,126,136,138,143,145,147,148,149,150,152,153,155],m_ypp:[145,147,148,149,150],m_z:[124,128,129,130,132,133,155,160],m_z_max:[155,160],m_z_min:[155,160],mac:198,mai:[27,29,30,31,32,33,35,43],make:[27,29,30,31,32,33,35,43,45,173,174,189,190,198],make_bound:[26,28,34,35,36,37,38,39,40,41,42,44,151,155,157,173,189],make_buond:[48,153],make_clos:[26,28,34,35,36,37,38,39,40,41,42,44,48,151,153,155,157,173,189],make_extended_const:[26,28,34,35,36,37,38,39,40,41,42,151,155,173,189],make_extended_not_const:[26,28,34,35,36,37,38,39,40,41,42,151,155,173,189],make_open:[26,28,34,35,36,37,38,39,40,41,42,44,48,151,153,155,157,173,189],make_unbound:[26,28,34,35,36,37,38,39,40,41,42,44,48,151,153,155,157,173,189],make_x_bound:[27,29,30,31,32,33,43,45,155,159,174,190],make_x_clos:[27,29,30,31,32,33,43,45,155,159,174,190],make_x_open:[27,29,30,31,32,33,43,45,155,159,174,190],make_x_unbound:[27,29,30,31,32,33,43,45,155,159,174,190],make_y_bound:[27,29,30,31,32,33,43,45,155,159,174,190],make_y_clos:[27,29,30,31,32,33,43,45,155,159,174,190],make_y_open:[27,29,30,31,32,33,43,45,155,159,174,190],make_y_unbound:[27,29,30,31,32,33,43,45,155,159,174,190],makefil:198,makesplin:[124,125,128,129,130,131,133,155,160],malloc:[122,126,129,131,135,136,142,145,148,149,150,151,153,154,155],manag:[35,36,41,43,44,46,48],mani:48,manipul:[26,28,34,35,36,37,38,39,40,41,42],manual:198,map:[21,46,151],map_splin:21,map_typ:[151,155],maplegenvar1:136,maplegenvar2:136,maplegenvar3:136,markeredgecolor:[176,192],markerfacecolor:[176,192],markers:[176,192],mat_real_typ:[151,152,160],match:198,materi:[163,197],math:[187,192],mathbf:[172,176,187,192],mathemat:[27,198],matlab:[172,173,174,175,176,187,188,189,190,191,192,197],matlabroot:188,matric:151,matrix:[27,29,30,31,32,33,43,45,48,102,108,109,114,118,119,172,174,175,176,187,190,191,192],matriz:[27,29,30,31,32,33,43],max:[26,28,34,35,36,37,38,39,40,41,42,134,138,141,147,154,173,189],max_ab:[79,121,143,164,168,197],max_el:[149,155,160],maximum:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,173,189],mean:[27,29,30,31,32,33,43,173,174,175,189,190,191],mem:[122,126,130,131,136,145,149,151,154],memori:[26,28,34,35,36,37,38,39,40,41,42,44,149],merchant:[163,197],mesh:[27,29,30,31,32,33,43],met:[163,197],method:[27,120,140,154,155,187,189,190,191,192,198],mex:[188,197,198],mex_:188,mex_cmd:188,mexload:188,mfile:[185,194],mfilenam:188,min:[26,28,34,35,36,37,38,39,40,41,42,134,138,141,147,154,173,189],min_ab:[79,121,143,164,168,197],min_el:[149,155,160],minimum:[26,28,34,35,36,37,38,39,40,41,42,122,173,189],minumum:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48],mislock:188,miss:[122,126,134,136,139,141,143,145,151,154,159,160],mix:[27,29,30,31,32,33,43],mltbx:198,modif:[143,163,197],modifi:[138,141,147],moment:[176,192],monoton:[38,39,103,120,143,149,150,154,173,175,189,191,198],monotono:[122,126,136,143,145],movefil:193,mroot:188,msg1:[151,160],msg:[122,126,134,136,139,141,143,145,149,151,154,159,160],munlock:188,must:[48,157,160,163,189,190,197],must_be_empti:[149,152],mutabl:[150,153,155],n_elem:[47,150,151],name:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,123,125,127,129,131,133,135,137,140,142,144,146,148,149,150,152,153,155,157,159,160,174,188,190],name_list:[46,149,150],namespac:[21,49,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,169,197,198],namspac:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147],nargin:[189,190,191],nargout:[187,189,190],natur:[35,136],natural_bc:[54,136,137],ndgrid:[174,190],need:143,neglig:[163,197],nest:[164,168,197],new_p0:[172,187],new_p1:[172,187],new_splin:[158,159],new_spline1d:[92,121,156,164,168,197],new_t0:[172,187],new_t1:[172,187],nfail:149,nient:122,nin:154,ninterv:[26,28,34,35,36,37,38,39,40,41,42,44,154,155,157],node:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,102,108,109,114,118,119,134,135,138,141,142,147,148,149,155,157,175,191],non:[21,143,149,150,154,173,174,175,189,190,191],not_a_knot:[35,54,136,137],noth:[134,135,138,140,141,147],notic:[163,197],notyp:21,now:193,npr:149,npt:[26,28,34,35,36,37,38,39,40,41,42,44,46,48,101,102,103,108,109,114,118,119,120,122,123,126,127,135,136,137,142,143,144,145,148,149,150,151,152,153,154,155,157,162,163,176,192],nrow:151,nseg:[134,138,141,147],nspl:[46,149,150],nspline:149,nullptr:[21,46,129,131,134,138,141,147,148,149,150,151,152,154,155,156,157,158,159,160,170,171],num:122,num_point:[46,48,149,150,152,153],number:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,55,57,102,108,109,114,118,119,143,151,176,192],numcol:[151,160],numeb:48,numer:[120,198],numeric_limit:154,numpoint:[26,28,34,35,36,37,38,39,40,41,42,44,46,48,150,153,155,157],numpointi:[27,29,30,31,32,33,43,45,155,159],numpointx:[27,29,30,31,32,33,43,45,155,159],numrow:[151,160],numsplin:[46,150],nxmin:154,nxy:160,obj:[173,175,176,188,189,191,192],object:[8,16,19,20,172,174,176,187,190,192],objecthandl:[189,190,191,192],obscil:45,off:[176,192],offici:163,ofstream:155,old:188,old_dir:188,onc:[22,155,161,163],onli:[143,173,174,175,176,189,190,191,192],onlin:198,onto:46,open:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,45,48,173,174,189,190],oper:[21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,129,131,132,133,134,135,138,141,142,147,148,150,152,153,155,157,159,160],opzional:151,ora:143,order:[26,28,34,35,36,37,38,39,40,41,42,44,134,135,138,141,142,147,148,154,155,157],origin:[26,28,34,35,36,37,38,39,40,41,42,44],oscillatori:[173,174,175,189,190,191],ostream_typ:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,91,117,121,124,125,128,129,130,131,132,133,134,135,138,141,142,147,148,149,150,152,153,154,155,157,159,160,164,168,197],ostringstream:155,osx:198,other:[163,197],otherwis:[27,29,30,31,32,33,43,163,197],our:193,out:[26,28,34,35,36,37,38,39,40,41,42,102,108,109,114,118,119,149,163,173,189,197],output:188,outsid:[27,29,30,31,32,33,43,45,173,174,189,190],overrid:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,123,125,127,129,131,133,135,137,140,142,144,146,148,155],owner:[163,197],p10:155,p_0:[111,113],p_1:[111,113],p_d:[173,175,176,189,191,192],p_dd:[173,175,176,189,191,192],p_ddd:[173,175,176,189,191,192],p_dddd:[173,189],p_ddddd:[173,189],p_dy:[26,28,35,36,38,42,138,155],p_k:[173,175,189,191],p_lastinterv:152,p_spl:151,p_x:[26,28,34,35,36,37,38,39,40,42,134,135,138,141,142,147,148,155],p_y:[26,28,34,35,36,37,38,39,40,42,134,135,138,141,142,147,148,155],p_yp:[39,40,147,148],p_ypp:[39,40,147,148],pag:154,pair:[47,150,155],parabol:[35,136],parabolic_runout_bc:[54,136,137],paramet:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,102,108,109,114,118,119],parametr:[172,176,187,192],partial:124,particular:[163,197],pass:[6,154],patch:[124,128,130,132],path1:188,path2:188,pchip:[38,44,145,154,156,170,173,175,189,191],pchip_build:[79,121,143,144,145,164,168,197],pchip_build_new:[79,121,143,164,168,197],pchip_quint:[56,145,146],pchip_typ:[21,57,144,149,155,156],pchipsplin:[21,42,80,121,128,143,144,149,155,156,164,168,197],pchipsplineclass:[49,164],pdf2svg:193,pdf:193,pdftoppm:193,peak:[174,190],pedant:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,162],per:143,perch:154,permit:[163,197],pezxi:124,picewis:34,piecewis:[26,28,34,35,36,37,38,39,40,41,42,44,120,174,190,198],planar:[105,110,115],plot:[176,192],png:[190,192,193],pnt:[102,108,109,114,118,119,154,155],poinst:[176,192],point:[5,6,7,11,14,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,102,108,109,114,118,119,122,124,126,136,143,145,149,151,152,154,162,167,172,173,174,176,187,189,190,192,198],pointer:[16,27,29,30,31,32,33,43,46,48],polici:163,polinomi:[26,28,34,35,36,37,38,39,40,41,42,44],polygon:[172,187],polynomi:[26,28,34,35,36,37,38,39,40,41,42,111,113,124,172,173,187,189],polynomialroot:[74,83,85,138,147,149],pop:155,pos1:149,pos:[149,151],posit:[26,28,34,35,36,37,38,39,40,41,42,47,149,150,152,173,189],posizion:151,possibl:[163,197],pow:154,power:102,pragma:[21,22,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162,163],prealloc:151,present:[172,187],preserv:[143,154],previous:[7,38,39,48],primari:124,primary_estim:124,print:[17,21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,124,128,130,132,134,138,141,147,154],privat:[137,150,189,190,191,192],procedur:[26,27],procur:[163,197],produc:[173,174,189,190],profit:[163,197],program:[2,3,25,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,169,178,179,180,181,182,183,184,196],project:163,properti:[172,187,189,190,191,192],protect:[129,131,148,150,153,155,157,159],provid:[163,197],punti:[122,126,154],puo:151,purpos:[163,197],push:[5,155,161],push_back:[149,151,198],pushback:[21,26,28,34,35,36,37,38,39,40,41,42,44,154,155,157,198],pxx:[174,190],pxy:[174,190],pyi:[174,190],pyp:149,pypp:149,q_sub_typ:145,qquad:[176,192],quadrat:138,quartic:147,quintic:[32,39,40,44,45,154,156,170,172,173,174,175,187,189,190,191],quintic_build:145,quintic_spline_typ:[39,82,121,145,146,164,168,197],quintic_spline_typeenum:[49,164],quintic_typ:[21,57,148,149,155,156],quinticsplin:[21,40,82,121,130,145,146,149,155,156,164,168,197],quinticspline_ypp_build:145,quinticspline_yppp_continu:145,quinticsplinebas:[39,41,84,121,146,147,148,164,168,197],quinticsplinebaseclass:[49,164],quinticsplineclass:[49,164],radic:149,rake:198,rakefil:198,rang:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,149,154,173,174,189,190],read:[151,160],real_typ:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,91,101,102,103,104,105,106,108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,126,127,129,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,147,148,149,150,151,152,153,154,155,156,157,159,160,162,163,164,168,197],realloc:[124,128,130,134,138,141,147,149,152,160],rec:138,red:[176,192],redistribut:[163,197],refer:[26,27,197],region_:[53,143],region_a:[53,143],region_abcdem:[79,106,121,143,164,168,197],region_abcdemenum:[49,164],region_b:[53,143],region_c:[53,143],region_d:[53,143],region_m:[53,143],reinterpret_cast:[149,151],relationship:[164,168,194,195,197],repo:198,repres:163,reproduc:[163,197],res:[143,149,154],reserv:[26,28,34,35,36,37,38,39,40,41,42,44,123,127,134,135,137,138,140,141,142,144,146,147,148,149,150,151,154,155,157,163,197],reserve_extern:[26,28,34,35,36,37,38,39,40,42,134,135,138,141,142,147,148,149,155],resiz:[149,151,152],respect:[27,29,30,31,32,33,43],result:[174,190],retain:[163,197],riallocazion:154,right:[163,197],risolver:[136,145],rom:[48,176,192],row:[27,29,30,31,32,33,43,45,151,160],rst:[187,189,190,191,192],run:198,run_win:198,runtime_error:[154,155],s_x:[27,29,30,31,32,33,43],s_y:[27,29,30,31,32,33,43],salar:[174,190],salvo:154,same:[172,174,187,190],sampl:[26,28,34,35,36,37,38,39,40,41,42,176,192],save_png:[185,194,195,196,197],saved_npt:154,scalar:[174,190],scientif:120,search:[26,28,34,35,36,37,38,39,40,41,42,47,48,134,138,141,147,149,150,152,153,154,155,173,189],search_i:[132,154,155,160],search_x:[132,154,155,160],searchinterv:[152,154],second:[15,21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,105,132,149,151,172,173,174,175,176,187,189,190,191,192,198],second_deriv3p_c:[145,162,163],second_deriv3p_l:[145,162,163],second_deriv3p_r:[145,162,163],second_derivative_build:[162,163],seg_bc0:136,seg_bcn:136,segment:[48,134,138,141,147,172,187],select:8,self:[173,174,175,176,187,189,190,191,192],separ:[172,187],servic:[163,197],set:[11,35,46,48,124,143,154,170,173,174,175,189,190,191,197,198],set_map:151,set_mat_r:152,set_vec_r:[151,153],setaccess:[189,190,191,192],setbc:145,setfinalbc:[35,137],setinitialbc:[35,137],setknot:[48,152,153],setknotscentripet:[48,152,153],setknotschordlength:[48,152,153],setknotsfolei:[48,153],setorigin:[26,28,34,35,36,37,38,39,40,41,42,44,154,155,157],setquintictyp:[39,146],setrang:[26,28,34,35,36,37,38,39,40,41,42,44,138,148,154,155,157],setup:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,122,123,126,127,134,135,136,137,138,139,140,141,142,143,144,145,146,147,150,151,152,153,154,155,156,157,159,160,176,192],shall:[163,197],shape:[143,154],should:163,siam:[120,198],sigma:143,sign:165,signtest:[79,121,143,164,168,197],simpl:[174,190,198],sistema:[136,145],size:[27,29,30,31,32,33,43,45,138,149,150,151,152,155,157,160,174,190],size_t:[122,124,126,128,129,130,131,132,134,136,138,141,143,145,147,148,149,150,151,152,153,154,155,160,162],skip:154,sll:[136,145,162],slll:136,sllll:136,slope:[122,126,138,141,147],smooth:[26,27,198],softwar:[27,163,197,198],soli:126,solo:[122,151],solut:[188,193],some:[26,28,34,35,36,37,38,39,40,41,42,44],sourc:[2,163,197],sp1:130,space:[176,192],special:[126,143,162,163,197],spl:[46,149,150,151,152,174,176,190,192],spl_type:156,spline1d:[93,121,155,156,157,164,168,185,194,195,196,197],spline1dclass:[49,164,177,194],spline1dmexwrapp:[188,189],spline2d:[95,121,155,158,159,164,168,185,194,195,196,197],spline2dclass:[49,164,177,194],spline2dmexwrapp:[188,190],spline:[2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,45,46,47,48,50,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,156,157,158,159,160,162,163,164,168,169,173,174,175,176,189,190,191,192],spline_build2:[3,21,22,23,24,197],spline_build:[3,21,22,23,24,197],spline_delet:[3,21,22,23,24,197],spline_ev:[3,21,22,23,24,197],spline_eval_d:[3,21,22,23,24,197],spline_eval_dd:[3,21,22,23,24,197],spline_eval_ddd:[3,21,22,23,24,197],spline_eval_dddd:[3,21,22,23,24,197],spline_eval_ddddd:[3,21,22,23,24,197],spline_get_type_nam:[3,21,22,23,24,197],spline_init:[3,21,22,23,24,197],spline_mem_ptr:[3,21,22,23,24,197],spline_new:[3,21,22,23,24,197],spline_print:[3,21,22,23,24,197],spline_push:[3,21,22,23,24,197],spline_select:[3,21,22,23,24,197],spline_set_typ:[57,149,150,155,156],spline_stor:21,spline_sub_typ:145,spline_typ:[44,45,151,156,159],spline_type_1d:[21,90,121,154,155,164,168,197],spline_type_2d:[90,121,154,164,168,197],spline_type_vec:151,spline_vec_typ:[57,149,153,155,156],splineakima2d:[27,91,100,155,164,169],splineakima:[26,91,100,155,164,169],splinebessel:[28,91,100,155,164,169],splinebicub:[29,30,91,100,155,164,169],splinebilinear:[31,91,100,155,164,169],splinebiquint:[32,33,91,100,155,164,169],splinecinterfac:[21,22],splineclass:[49,164],splineconst:[34,91,100,155,164,169],splinecub:[35,54,91,100,155,164,169],splinecubicbas:[91,100,164,169],splinehermit:[36,91,100,155,164,169],splinelinbear:142,splinelinear:[37,91,100,155,164,169],splinepchip:[38,53,91,99,100,101,104,106,112,116,120,155,164,169],splinequint:[39,56,91,99,100,155,164,169],splinequinticbas:[40,91,100,155,164,169],splines1d:[44,91,100,107,155,164,169],splines2d:[45,91,100,155,164,169],splines_c_interface_h:[3,22,23,24,197],splines_config_hh:[97,161,164,168,197],splines_hh:[91,155,164,168,197],splines_os_osx:154,splines_utils_hh:[99,163,164,168,197],splinesbivari:[91,100,164,169],splinescinterfac:[1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,23,25],splinesclass:[49,164],splinesconfig:[51,91,100,155,164,169],splineset:[49,91,99,100,121,151,155,164,168,169,185,194,195,196,197],splinesetclass:[49,164,177,194],splinesetgc:[91,100,164,169],splinesetmexwrapp:[188,191],splinesload:[21,155,198],splinesurf:[29,31,32,91,121,129,131,133,154,155,159,160,164,168,197],splinesurfclass:[49,164],splinesutil:[52,79,81,85,90,91,97,100,143,145,149,154,164,169],splinetype1d:[44,46,91,107,121,149,150,151,154,155,156,157,164,168,197],splinetype1denum:[49,164],splinetype2d:[45,49,91,121,154,155,158,159,164,168,197],splinevec:[91,100,121,155,164,168,169,177,185,194,195,196,197],splinevecenum:[49,164],splinevecmexwrapp:[188,192],sqrt:[149,152,154],sqrtd1:187,sqrtd2:187,sqrtd3:187,src:188,src_mex:188,srr:[136,145,162],srrr:136,srrrr:136,standard:[21,111,113,122,124,126,128,130,132,134,136,138,139,141,143,145,147,198],statement:124,static_cast:[21,149,154],statist:120,std:[21,44,46,47,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,150,151,152,154,155,156,157,159,160,162,163,198],stencil:124,stire:[27,29,30,31,32,33,43],storag:[27,29,30,31,32,33,43,45,102,108,109,114,118,119],store:[26,27,28,29,30,31,32,33,34,35,36,37,40,41,42,43,45,48,172,187],strcmp:21,stream:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,149,150,152,153,155,157,159],strettament:[122,126,136,143,145],strict:[149,150,154,163,197],strictli:[103,143,149],string:[21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,107,122,123,125,126,127,129,131,133,134,135,136,137,139,140,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156,157,159,160,173,174,175,189,190,191],string_to_splinetype1d:[151,154,155],string_to_splinetype2d:[154,155,159],struct:197,studi:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,198],stype:[46,149,150,151],sub:145,subclass:[29,32,40,41,42,43],substitut:[163,197],subtyp:[173,189],support:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48],surf:[174,190],surfac:[27,29,30,31,32,33,43,45,174,190,198],svg:193,sxx:124,sxxy:124,sxxyi:124,sxy:124,sxyi:124,sxyz:124,sxz:124,sya:124,syi:124,system:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162,193],syya:124,t102:136,t103:162,t105:[136,162],t10:[136,139,162],t110:136,t112:136,t118:136,t119:136,t11:139,t12:[136,154,162],t133:136,t134:136,t13:[136,139,152,154,162],t141:136,t142:136,t148:136,t149:136,t14:[139,162],t156:136,t157:136,t159:136,t15:154,t16:[136,139,154,162],t17:[136,139,152,154,162],t19:[136,139,162],t20:162,t21:[154,162],t22:[139,154,162],t23:[136,139],t24:162,t25:[136,139,162],t26:[139,152,154,162],t27:[152,154],t28:[152,154,162],t29:136,t30:[136,139,154],t31:139,t32:162,t33:162,t35:136,t36:139,t38:162,t40:154,t41:[136,162],t43:162,t47:162,t48:162,t49:[136,162],t51:162,t52:162,t53:162,t55:[136,162],t56:136,t58:162,t60:136,t64:154,t65:154,t67:154,t70:162,t73:162,t75:136,t76:136,t80:162,t83:162,t91:136,t_0:[176,192],t_k:[176,192],tabl:[173,174,189,190],test:197,than:[149,152],theori:[163,197],thi:[2,47,103,122,126,128,129,130,131,132,134,136,138,139,141,143,145,147,149,150,151,152,153,154,155,157,159,160,161,163,197],third:[13,26,28,34,35,36,37,38,39,40,41,42,44,46,48,172,173,175,176,187,189,191,192,198],this_thread:[152,154],those:163,three:143,through:[143,162],tipo:151,tmax:[175,176,191,192],tmin:[175,176,191,192],tmp1:154,tmp2:154,tmp3:154,tmp:[149,160,162],tolow:154,toolbox:197,top:[136,162],tort:[163,197],total:[26,28,34,35,36,37,38,39,40,41,42,44],transact:[27,198],transform:154,transpos:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,135,138,141,142,147,148,155,157,159,160],trento:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,198],trovata:21,trovato:149,two:193,type:[14,19,21,22,44,45,47,48,55,57,123,127,135,137,140,142,144,145,148,149,150,151,153,154,155,156,157,158,159,160,164,165,167,168,189,190,194,195,197],type_nam:[21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,124,125,128,129,130,131,132,133,154,155,157,159,160],typedef:[21,47,137,143,146,150,155,169,197],typenam:[44,45],u_d:160,u_dd:160,unbound:[27,29,30,31,32,33,43,45],uncom:161,underli:[173,174,175,176,189,190,191,192],uniform:[90,121,154,155,164,168,197],unitn:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,198],univers:[91,121,154,155,164,168,197],universita:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163],unknow:[136,145],unknown:[154,156,158],unless:143,unnam:46,unsign:[26,28,34,35,36,37,38,39,40,41,42,44,46,48,123,127,135,137,140,142,144,148,150,151,152,153,155,157,160],unw_local_onli:154,usag:[174,190,197],usata:143,usd:48,use:[143,162,163,173,189,197,198],used:[26,28,34,35,36,37,38,39,40,41,42,124,139,149],uses:151,usin:[172,187],using:[21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,102,108,109,111,113,114,118,119,122,123,124,126,127,128,129,130,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,154,155,156,160,162,163,176,192,198],usr:193,util:[97,122,126,129,131,135,136,142,143,145,148,149,150,151,152,153,154,155,161,188],utils_assert0:[134,138,141,147,152,154,156],utils_assert:[122,126,134,136,139,141,143,145,149,151,152,154,159,160],utils_error:[136,139,145,149,151,155,156,158,160],utils_warn:[136,145],v_d:160,v_dd:160,val:[46,48,149,150,151,152,153],valu:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,53,54,55,56,57,124,136,145,149,150,172,173,174,175,187,189,190,191],varargin:[172,173,174,175,187,189,190,191],varargout:[187,189,190],variabl:[169,197],vario:198,variou:197,vaue:[173,189],vec:[46,150,151,154,170],vec_int_typ:151,vec_real_typ:[46,48,122,126,134,136,139,141,143,145,150,151,152,153,154,155,156,160],vec_string_typ:[46,150,151,155],vector:[21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,102,108,109,114,118,119,138,149,150,151,152,153,155,157,159,160,172,174,175,176,187,190,191,192,193,198],vector_typ:[151,155,160],vectori:[149,150],vettor:151,via:143,view:[163,174,190],virtual:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,45,46,48,123,127,135,137,140,142,144,146,148,150,153,155,159],vol:[26,27,120,198],volatil:124,volatility_factor:124,wai:[163,197],wall:188,want:161,warranti:[163,197],weak:150,weight:124,wglobal:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,162],when:[26,28,35,36,37,38,39,40,41,42],where:[26,28,34,35,36,37,38,39,40,41,42,173,174,176,189,190,192],whether:[124,163,197],which:[188,197,198],whose:[102,108,109,114,118,119,172,187],width:[190,192],window:[154,198],without:[163,197],workaround:188,wpad:161,wpoison:[21,122,124,126,128,130,132,134,136,138,139,141,143,145,147,149,151,152,154,155,156,158,160,161,162],wrapper:[173,174,175,176,189,190,191,192],write:[27,29,30,31,32,33,43],writetostream:[21,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,124,125,128,129,130,131,132,133,134,135,138,141,142,147,148,155,157,159],x_1:[152,154],x_2:[152,154],x_3:[152,154],x_4:154,x_i:[27,29,30,31,32,33,43],x_loc:124,x_max_po:[26,28,34,35,36,37,38,39,40,41,42,134,135,138,141,142,147,148,155,173,189],x_min_po:[26,28,34,35,36,37,38,39,40,41,42,134,135,138,141,142,147,148,155,173,189],xbegin:[26,28,34,35,36,37,38,39,40,41,42,44,155,157,173,189],xdata:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,122,126,134,136,139,141,143,145,151,154,156,160],xend:[26,28,34,35,36,37,38,39,40,41,42,44,155,157,173,189],xmax:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,138,148,149,150,152,153,154,155,157,159,173,189],xmin:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,138,148,149,150,152,153,154,155,157,159,173,189],xnode:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,150,153,155,157,159],xsave:154,xyswp:155,y_1:[152,154],y_2:[152,154],y_3:[152,154],y_4:154,y_j:[27,29,30,31,32,33,43],y_loc:124,y_max:[26,28,34,35,36,37,38,39,40,41,42,134,135,138,141,142,147,148,155,173,189],y_min:[26,28,34,35,36,37,38,39,40,41,42,134,135,138,141,142,147,148,155,173,189],y_min_max:[26,28,34,35,36,37,38,39,40,41,42,134,135,138,141,142,147,148,155,189],ybegin:[26,28,34,35,36,37,38,39,40,41,42,44,155,157,173,189],ydata:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,122,126,134,136,139,141,143,145,151,154,156,160],yend:[26,28,34,35,36,37,38,39,40,41,42,44,155,157,173,189],yes:103,ymax:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,150,154,155,157,159,173,189],ymin:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,150,154,155,157,159,173,189],ynode:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,149,150,153,155,157,159],you:161,your:198,ypdata:[36,139,151],ypnode:[26,28,35,36,38,39,40,42,128,130,148,155],ypp:[136,137,145,147,149,162,163],yppnode:[39,40,130,148],ysave:154,z00:[124,128,130,132],z01:[124,128,130,132],z02:124,z03:124,z10:[124,128,130,132],z11:[124,128,130,132],z12:124,z13:124,z20:124,z21:124,z22:124,z23:124,z30:124,z31:124,z32:124,z33:124,z_loc:124,zdata:[27,29,30,31,32,33,43,160],zero:124,zeta:[46,149,150,151],zij:[27,29,30,31,32,33,43],zmax:[27,29,30,31,32,33,43,45,155,159],zmin:[27,29,30,31,32,33,43,45,155,159],znode:[27,29,30,31,32,33,43,45,155,159],zxy:124},titles:["Class Hierarchy","Define SPLINES_C_INTERFACE_H","File SplinesCinterface.cc","File SplinesCinterface.h","File Hierarchy","Function SPLINE_push","Function SPLINE_build2","Function SPLINE_build","Function SPLINE_select","Function SPLINE_eval_D","Function SPLINE_eval","Function SPLINE_init","Function SPLINE_eval_DDDD","Function SPLINE_eval_DDD","Function SPLINE_get_type_name","Function SPLINE_eval_DD","Function SPLINE_mem_ptr","Function SPLINE_print","Function SPLINE_eval_DDDDD","Function SPLINE_new","Function SPLINE_delete","Program Listing for File SplinesCinterface.cc","Program Listing for File SplinesCinterface.h","C API","Full API","Full API","Class AkimaSpline","Class Akima2Dspline","Class BesselSpline","Class BiCubicSplineBase","Class BiCubicSpline","Class BilinearSpline","Class BiQuinticSplineBase","Class BiQuinticSpline","Class ConstantSpline","Class CubicSpline","Class HermiteSpline","Class LinearSpline","Class PchipSpline","Class QuinticSpline","Class QuinticSplineBase","Class Spline","Class CubicSplineBase","Class SplineSurf","Class Spline1D","Class Spline2D","Class SplineSet","Class SplineSet::BinarySearch","Class SplineVec","Class Hierarchy","Define SPLINES_HH","Define SPLINES_CONFIG_HH","Define SPLINES_UTILS_HH","Enum REGION_ABCDEM","Enum CUBIC_SPLINE_TYPE_BC","Enum SplineType2D","Enum QUINTIC_SPLINE_TYPE","Enum SplineType1D","File SplineAkima.cc","File SplineAkima.hxx","File SplineAkima2D.cc","File SplineAkima2D.hxx","File SplineBessel.cc","File SplineBessel.hxx","File SplineBiCubic.cc","File SplineBiCubic.hxx","File SplineBiQuintic.cc","File SplineBiQuintic.hxx","File SplineBilinear.cc","File SplineBilinear.hxx","File SplineConstant.cc","File SplineConstant.hxx","File SplineCubic.cc","File SplineCubic.hxx","File SplineCubicBase.cc","File SplineHermite.cc","File SplineHermite.hxx","File SplineLinear.cc","File SplineLinear.hxx","File SplinePchip.cc","File SplinePchip.hxx","File SplineQuintic.cc","File SplineQuintic.hxx","File SplineQuinticBase.cc","File SplineQuinticBase.hxx","File SplineSet.cc","File SplineSet.hxx","File SplineSetGC.cc","File SplineVec.cc","File SplineVec.hxx","File Splines.cc","File Splines.hh","File Splines1D.cc","File Splines1D.hxx","File Splines2D.cc","File Splines2D.hxx","File SplinesBivariate.cc","File SplinesConfig.hh","File SplinesUtils.cc","File SplinesUtils.hh","File Hierarchy","Function Splines::Pchip_build_new","Function Splines::centripetal","Function Splines::checkCubicSplineMonotonicity","Function Splines::signTest","Function Splines::curvature_DD","Function Splines::get_region","Function Splines::new_Spline1D","Function Splines::uniform","Function Splines::universal","Function Splines::curvature","Function Splines::Hermite3toPoly","Function Splines::min_abs","Function Splines::Hermite5toPoly","Function Splines::FoleyNielsen","Function Splines::curvature_D","Function Splines::max_abs","Function Splines::backtrace","Function Splines::FangHung","Function Splines::chordal","Function Splines::Pchip_build","Namespace Splines","Program Listing for File SplineAkima.cc","Program Listing for File SplineAkima.hxx","Program Listing for File SplineAkima2D.cc","Program Listing for File SplineAkima2D.hxx","Program Listing for File SplineBessel.cc","Program Listing for File SplineBessel.hxx","Program Listing for File SplineBiCubic.cc","Program Listing for File SplineBiCubic.hxx","Program Listing for File SplineBiQuintic.cc","Program Listing for File SplineBiQuintic.hxx","Program Listing for File SplineBilinear.cc","Program Listing for File SplineBilinear.hxx","Program Listing for File SplineConstant.cc","Program Listing for File SplineConstant.hxx","Program Listing for File SplineCubic.cc","Program Listing for File SplineCubic.hxx","Program Listing for File SplineCubicBase.cc","Program Listing for File SplineHermite.cc","Program Listing for File SplineHermite.hxx","Program Listing for File SplineLinear.cc","Program Listing for File SplineLinear.hxx","Program Listing for File SplinePchip.cc","Program Listing for File SplinePchip.hxx","Program Listing for File SplineQuintic.cc","Program Listing for File SplineQuintic.hxx","Program Listing for File SplineQuinticBase.cc","Program Listing for File SplineQuinticBase.hxx","Program Listing for File SplineSet.cc","Program Listing for File SplineSet.hxx","Program Listing for File SplineSetGC.cc","Program Listing for File SplineVec.cc","Program Listing for File SplineVec.hxx","Program Listing for File Splines.cc","Program Listing for File Splines.hh","Program Listing for File Splines1D.cc","Program Listing for File Splines1D.hxx","Program Listing for File Splines2D.cc","Program Listing for File Splines2D.hxx","Program Listing for File SplinesBivariate.cc","Program Listing for File SplinesConfig.hh","Program Listing for File SplinesUtils.cc","Program Listing for File SplinesUtils.hh","C++ API","Typedef Splines::integer","Typedef Splines::ostream_type","Typedef Splines::real_type","Full API","Full API","Variable Splines::spline_type_1D","Variable Splines::spline_type_2D","Class BaseHermite","Class Spline1D","Class Spline2D","Class SplineSet","Class SplineVec","Class Hierarchy","File BaseHermite.m","File CompileSplinesLib.m","File Spline1D.m","File Spline2D.m","File SplineSet.m","File SplineVec.m","File save_png.m","File Hierarchy","Function save_png","Program Listing for File BaseHermite.m","Program Listing for File CompileSplinesLib.m","Program Listing for File Spline1D.m","Program Listing for File Spline2D.m","Program Listing for File SplineSet.m","Program Listing for File SplineVec.m","Program Listing for File save_png.m","MATLAB API","Full API","Full API","Splines","Splines"],titleterms:{"class":[0,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,59,61,63,65,67,69,71,73,76,78,80,82,84,86,89,91,93,95,121,164,168,172,173,174,175,176,177,178,180,181,182,183,194,195],"enum":[53,54,55,56,57,73,79,82,91,121,164,168],"function":[3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,23,24,79,90,91,92,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,164,168,184,186,194,195],akima2dsplin:27,akimasplin:26,api:[23,24,25,164,168,169,194,195,196],backtrac:117,base:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,172,173,174,175,176],basehermit:[172,178,187],besselsplin:28,bicubicsplin:30,bicubicsplinebas:29,bilinearsplin:31,binarysearch:47,biquinticsplin:33,biquinticsplinebas:32,centripet:102,checkcubicsplinemonoton:103,chordal:119,compil:198,compilesplineslib:[179,188],constantsplin:34,content:[2,3,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,121,178,179,180,181,182,183,184],cubic_spline_type_bc:54,cubicsplin:35,cubicsplinebas:42,curvatur:110,curvature_d:115,curvature_dd:105,defin:[1,3,23,24,50,51,52,91,97,99,164,168],definit:[2,3,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,178,179,180,181,182,183,184],deriv:[29,32,40,41,42,43],descript:2,detail:2,develop:198,document:[1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,53,54,55,56,57,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,165,166,167,170,171,172,173,174,175,176,186],fanghung:118,file:[2,3,4,21,22,23,25,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,169,178,179,180,181,182,183,184,185,187,188,189,190,191,192,193,194,196],foleynielsen:114,full:[23,24,25,164,168,169,194,195,196],get_region:106,hermite3topoli:111,hermite5topoli:113,hermitesplin:36,hierarchi:[0,4,23,49,100,164,177,185,194],hxx:[59,61,63,65,67,69,71,73,76,78,80,82,84,86,89,93,95,123,125,127,129,131,133,135,137,140,142,144,146,148,150,153,157,159],includ:[58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99],inherit:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,172,173,174,175,176],integ:165,introduct:198,licens:197,linearsplin:37,list:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,187,188,189,190,191,192,193],matlab:[194,198],max_ab:116,min_ab:112,namespac:[58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,98,99,121,164,168],nest:[46,47],new_spline1d:107,ostream_typ:166,pchip_build:120,pchip_build_new:101,pchipsplin:38,program:[21,22,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,187,188,189,190,191,192,193],quintic_spline_typ:56,quinticsplin:39,quinticsplinebas:40,real_typ:167,refer:[120,198],region_abcdem:53,relationship:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,46,47,172,173,174,175,176],save_png:[184,186,193],signtest:104,spline1d:[44,173,180,189],spline2d:[45,174,181,190],spline:[41,90,91,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,154,155,165,166,167,170,171,197,198],spline_build2:6,spline_build:7,spline_delet:20,spline_ev:10,spline_eval_d:9,spline_eval_dd:15,spline_eval_ddd:13,spline_eval_dddd:12,spline_eval_ddddd:18,spline_get_type_nam:14,spline_init:11,spline_mem_ptr:16,spline_new:19,spline_print:17,spline_push:5,spline_select:8,spline_type_1d:170,spline_type_2d:171,splineakima2d:[60,61,124,125],splineakima:[58,59,122,123],splinebessel:[62,63,126,127],splinebicub:[64,65,128,129],splinebilinear:[68,69,132,133],splinebiquint:[66,67,130,131],splineconst:[70,71,134,135],splinecub:[72,73,136,137],splinecubicbas:[74,138],splinehermit:[75,76,139,140],splinelinear:[77,78,141,142],splinepchip:[79,80,143,144],splinequint:[81,82,145,146],splinequinticbas:[83,84,147,148],splines1d:[92,93,156,157],splines2d:[94,95,158,159],splines_c_interface_h:1,splines_config_hh:51,splines_hh:50,splines_utils_hh:52,splinesbivari:[96,160],splinescinterfac:[2,3,21,22],splinesconfig:[97,161],splineset:[46,47,85,86,149,150,175,182,191],splinesetgc:[87,151],splinesurf:43,splinesutil:[98,99,162,163],splinetype1d:57,splinetype2d:55,splinevec:[48,88,89,152,153,176,183,192],struct:[164,168,194,195],test:198,toolbox:198,type:[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,46,172,173,174,175,176],typedef:[91,121,164,165,166,167,168],uniform:108,univers:109,usag:198,variabl:[90,121,164,168,170,171]}}) \ No newline at end of file diff --git a/docs_build/Doxyfile b/docs_build/Doxyfile deleted file mode 100644 index c0e77a75..00000000 --- a/docs_build/Doxyfile +++ /dev/null @@ -1,384 +0,0 @@ -# Doxyfile 1.9.1 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -DOXYFILE_ENCODING = UTF-8 -PROJECT_NAME = "My Project" -PROJECT_NUMBER = -PROJECT_BRIEF = -PROJECT_LOGO = -OUTPUT_DIRECTORY = -CREATE_SUBDIRS = NO -ALLOW_UNICODE_NAMES = NO -OUTPUT_LANGUAGE = English -OUTPUT_TEXT_DIRECTION = None -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -JAVADOC_BANNER = NO -QT_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -PYTHON_DOCSTRING = YES -INHERIT_DOCS = YES -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 4 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -OPTIMIZE_FOR_FORTRAN = NO -OPTIMIZE_OUTPUT_VHDL = NO -OPTIMIZE_OUTPUT_SLICE = NO -EXTENSION_MAPPING = -MARKDOWN_SUPPORT = YES -TOC_INCLUDE_HEADINGS = 5 -AUTOLINK_SUPPORT = YES -BUILTIN_STL_SUPPORT = NO -CPP_CLI_SUPPORT = NO -SIP_SUPPORT = NO -IDL_PROPERTY_SUPPORT = YES -DISTRIBUTE_GROUP_DOC = NO -GROUP_NESTED_COMPOUNDS = NO -SUBGROUPING = YES -INLINE_GROUPED_CLASSES = NO -INLINE_SIMPLE_STRUCTS = NO -TYPEDEF_HIDES_STRUCT = NO -LOOKUP_CACHE_SIZE = 0 -NUM_PROC_THREADS = 1 -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = NO -EXTRACT_PRIVATE = NO -EXTRACT_PRIV_VIRTUAL = NO -EXTRACT_PACKAGE = NO -EXTRACT_STATIC = NO -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -EXTRACT_ANON_NSPACES = NO -RESOLVE_UNNAMED_PARAMS = YES -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = NO -HIDE_SCOPE_NAMES = NO -HIDE_COMPOUND_REFERENCE= NO -SHOW_INCLUDE_FILES = YES -SHOW_GROUPED_MEMB_INC = NO -FORCE_LOCAL_INCLUDES = NO -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_MEMBERS_CTORS_1ST = NO -SORT_GROUP_NAMES = NO -SORT_BY_SCOPE_NAME = NO -STRICT_PROTO_MATCHING = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_FILES = YES -SHOW_NAMESPACES = YES -FILE_VERSION_FILTER = -LAYOUT_FILE = -CITE_BIB_FILES = -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = NO -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_AS_ERROR = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = ../src -INPUT_ENCODING = UTF-8 -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ - *.inc \ - *.m \ - *.markdown \ - *.md \ - *.mm \ - *.dox \ - *.py \ - *.pyw \ - *.f90 \ - *.f95 \ - *.f03 \ - *.f08 \ - *.f18 \ - *.f \ - *.for \ - *.vhd \ - *.vhdl \ - *.ucf \ - *.qsf \ - *.ice -RECURSIVE = NO -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = * -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -FILTER_SOURCE_PATTERNS = -USE_MDFILE_AS_MAINPAGE = -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = NO -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = NO -REFERENCES_RELATION = NO -REFERENCES_LINK_SOURCE = YES -SOURCE_TOOLTIPS = YES -USE_HTAGS = NO -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = NO -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_EXTRA_STYLESHEET = -HTML_EXTRA_FILES = -HTML_COLORSTYLE_HUE = 220 -HTML_COLORSTYLE_SAT = 100 -HTML_COLORSTYLE_GAMMA = 80 -HTML_TIMESTAMP = NO -HTML_DYNAMIC_MENUS = YES -HTML_DYNAMIC_SECTIONS = NO -HTML_INDEX_NUM_ENTRIES = 100 -GENERATE_DOCSET = NO -DOCSET_FEEDNAME = "Doxygen generated docs" -DOCSET_BUNDLE_ID = org.doxygen.Project -DOCSET_PUBLISHER_ID = org.doxygen.Publisher -DOCSET_PUBLISHER_NAME = Publisher -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -CHM_INDEX_ENCODING = -BINARY_TOC = NO -TOC_EXPAND = NO -GENERATE_QHP = NO -QCH_FILE = -QHP_NAMESPACE = org.doxygen.Project -QHP_VIRTUAL_FOLDER = doc -QHP_CUST_FILTER_NAME = -QHP_CUST_FILTER_ATTRS = -QHP_SECT_FILTER_ATTRS = -QHG_LOCATION = -GENERATE_ECLIPSEHELP = NO -ECLIPSE_DOC_ID = org.doxygen.Project -DISABLE_INDEX = NO -GENERATE_TREEVIEW = NO -ENUM_VALUES_PER_LINE = 4 -TREEVIEW_WIDTH = 250 -EXT_LINKS_IN_WINDOW = NO -HTML_FORMULA_FORMAT = png -FORMULA_FONTSIZE = 10 -FORMULA_TRANSPARENT = YES -FORMULA_MACROFILE = -USE_MATHJAX = NO -MATHJAX_FORMAT = HTML-CSS -MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 -MATHJAX_EXTENSIONS = -MATHJAX_CODEFILE = -SEARCHENGINE = YES -SERVER_BASED_SEARCH = NO -EXTERNAL_SEARCH = NO -SEARCHENGINE_URL = -SEARCHDATA_FILE = searchdata.xml -EXTERNAL_SEARCH_ID = -EXTRA_SEARCH_MAPPINGS = -#--------------------------------------------------------------------------- -# Configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = -MAKEINDEX_CMD_NAME = makeindex -LATEX_MAKEINDEX_CMD = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4 -EXTRA_PACKAGES = -LATEX_HEADER = -LATEX_FOOTER = -LATEX_EXTRA_STYLESHEET = -LATEX_EXTRA_FILES = -PDF_HYPERLINKS = YES -USE_PDFLATEX = YES -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -LATEX_SOURCE_CODE = NO -LATEX_BIB_STYLE = plain -LATEX_TIMESTAMP = NO -LATEX_EMOJI_DIRECTORY = -#--------------------------------------------------------------------------- -# Configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -RTF_SOURCE_CODE = NO -#--------------------------------------------------------------------------- -# Configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_SUBDIR = -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# Configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = YES -XML_OUTPUT = xml -XML_PROGRAMLISTING = YES -XML_NS_MEMB_FILE_SCOPE = NO -#--------------------------------------------------------------------------- -# Configuration options related to the DOCBOOK output -#--------------------------------------------------------------------------- -GENERATE_DOCBOOK = NO -DOCBOOK_OUTPUT = docbook -DOCBOOK_PROGRAMLISTING = NO -#--------------------------------------------------------------------------- -# Configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# Configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration options related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -EXTERNAL_PAGES = YES -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -DIA_PATH = -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO -DOT_NUM_THREADS = 0 -DOT_FONTNAME = Helvetica -DOT_FONTSIZE = 10 -DOT_FONTPATH = -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -UML_LIMIT_NUM_FIELDS = 10 -DOT_UML_DETAILS = NO -DOT_WRAP_THRESHOLD = 17 -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -CALLER_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -INTERACTIVE_SVG = NO -DOT_PATH = -DOTFILE_DIRS = -MSCFILE_DIRS = -DIAFILE_DIRS = -PLANTUML_JAR_PATH = -PLANTUML_CFG_FILE = -PLANTUML_INCLUDE_PATH = -DOT_GRAPH_MAX_NODES = 50 -MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES diff --git a/docs_build/Makefile b/docs_build/Makefile index 59af387d..729c1538 100644 --- a/docs_build/Makefile +++ b/docs_build/Makefile @@ -1,22 +1,15 @@ -INDEX = ./sphinx/_build/html/genindex.html - build: - @rm -rf xml-c - @rm -rf xml-cpp - @rm -rf xml-matlab - @cd sphinx_c; make clean; make html; cd .. - @cd sphinx_cpp; make clean; make html; cd .. - @cd sphinx_matlab; make clean; make html; cd .. - @cp -rf sphinx_c/api-c sphinx - @cp -rf sphinx_cpp/api-cpp sphinx - @cp -rf sphinx_matlab/api-matlab sphinx - @ruby xml_merge.rb - @cd sphinx; make clean; make html; cd .. + make clean + @cd sphinx; make html; ruby filter.rb; cd .. @make install install: - @ruby filter.rb - @cd sphinx; rm -rf ../../docs/*; cp -a _build/html/. ../../docs; cd .. + @rm -rf ../docs/*; cp -a sphinx/_build/html/. ../docs clean: + @rm -rf xml + @rm -rf xml-cpp + @rm -rf xml-matlab + @rm -rf sphinx*/api-* + @rm -rf sphinx*/_build @cd sphinx; make clean; cd .. diff --git a/docs_build/_static/cloud.css b/docs_build/_static/cloud.css new file mode 100644 index 00000000..b9a917cf --- /dev/null +++ b/docs_build/_static/cloud.css @@ -0,0 +1,865 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +@import url("basic.css"); +@import url("cloud_colors.css"); +@import url("cloud_tables.css"); +@import url("cloud_sidebar.css"); +@import url("cloud_code.css"); + +* { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +body +{ + padding: 0; + color: #000; + font-family: var(---font0), sans-serif; + font-size: 100%; /* scala tutti i font */ + line-height: 1.5em; + margin: 0px; /* margine bordo esterno */ + background: #ffffff; /* colore bordo esterno */ +} + +div.relbar-top, div.relbar-bottom { + background: var(---barra-top-bottom-bg2); /* Sfondo (dietro) barra top/bottom */ + padding: 0 1em; +} + +div.related +{ + margin: 0 auto; + max-width: 11.5in; + background: var(---barra-top-bottom-bg); /* Sfondo barra top/bottom */ + line-height: 1.5em; /* altezzza barra */ + padding: .75em 0; + color: #FFF; /* colore >> sulla barra */ + /* text-shadow: 1px 1px 1px rgba(0,0,0,.3); */ +} + +div.relbar-top div.related { + -moz-border-radius: var(---barra-top-bottom-ray) var(---barra-top-bottom-ray) 0 0; + -webkit-border-radius: var(---barra-top-bottom-ray) var(---barra-top-bottom-ray) 0 0; + -o-border-radius: var(---barra-top-bottom-ray) var(---barra-top-bottom-ray) 0 0; + -ms-border-radius: var(---barra-top-bottom-ray) var(---barra-top-bottom-ray) 0 0; + border-radius: var(---barra-top-bottom-ray) var(---barra-top-bottom-ray) 0 0; +} + +div.relbar-bottom div.related +{ + -moz-border-radius: 0 0 var(---barra-top-bottom-ray) var(---barra-top-bottom-ray); + -webkit-border-radius: 0 0 var(---barra-top-bottom-ray) var(---barra-top-bottom-ray); + -o-border-radius: 0 0 var(---barra-top-bottom-ray) var(---barra-top-bottom-ray); + -ms-border-radius: 0 0 var(---barra-top-bottom-ray) var(---barra-top-bottom-ray); + border-radius: 0 0 var(---barra-top-bottom-ray) var(---barra-top-bottom-ray); +} + +div.related a +{ + display: inline-block; + padding: 0.3em 0.6em; + + -moz-border-radius: var(---barra-top-bottom-buttom-ray); + -webkit-border-radius: var(---barra-top-bottom-buttom-ray); + -o-border-radius: var(---barra-top-bottom-buttom-ray); + -ms-border-radius: var(---barra-top-bottom-buttom-ray); + border-radius: var(---barra-top-bottom-buttom-ray); + + font-weight: bold; + background: var(---barra-top-bottom-bg3); + color: #ffffff; + border: 1px solid var(---barra-top-bottom-buttom-color); /* colore bordo pulsante */ +} + +div.related li.right a +{ + font-weight: bold; + color: #ffffff; + background: var(---barra-top-bottom-bg3); + border: 1px solid var(---barra-top-bottom-buttom-color); /* colore bordo pulsante */ +} + +div.document +{ + position: relative; + margin: 0 auto; + max-width: 11.5in; + background: var(---pannello-principale-bg); + border-left: 2px solid #F0F0F0; + border-right: 2px solid #F0F0F0; + } + +div.body +{ + min-height: 6in; + background-color: var(---pannello-destro-bg); + line-height: 1.5em; + color: var(---pannello-destro-colore-testo); + padding: 30px 20px; + border-width: 2px; + min-width: 0; + max-width: none; +} + +div.related a:hover, +div.related li.right a:hover +{ + background: #6BBD7B; /*fff9e4;*/ + color: #d39110; + border-color: #F8D186; + text-decoration: none; + text-shadow: none; + + -moz-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -webkit-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -o-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -ms-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); +} + +div.documentwrapper +{ + float: left; + width: 100%; +} + +div.bodywrapper +{ + margin: 0 0 0 3in; +} + +div.document.sidebar-hidden div.bodywrapper { + margin-left: 0; +} + + +div.sphinxprev a:hover, +div.sphinxnext a:hover +{ + background: #fff9e4; + border-color: #F8D186; + color: #d39110; + text-decoration: none; +} + +div.footer +{ + color: var(---footer-color); + background: var(---footer-color-bg); + + width: 100%; + padding: 9px 0; + text-align: center; + font-size: 75%; + width: auto; + /* box-shadow: 0 50vh 0 50vh #1A4162; */ +} + +div.footer button.link +{ + margin: 0 -1px; + padding: 0; + background: none; + border: none; + font-size: inherit; + font-family: inherit; +} + +div.footer a, +div.footer button.link +{ + color: #B0B0B0; + text-decoration: underline; +} + +div.footer a:hover, +div.footer button.link:hover +{ + color: white; +} + +div.footer + div.footer, +div.footer + script + div.footer +{ + margin-top: -12px; +} + + +div.footer, div.footer a:not(:hover) +{ + color: var(---footer-color-text); +} + +div.body h1, +div.body h2, +div.body p.rubric, +div.body h3, +div.body h4, +div.body h5, +div.body h6 +{ + font-family: var(---font1); + font-weight: normal; + color: #093755; /* colore HEADING 1 */ + clear: both; +} + +div.body h1 +{ + font-size: 2.0em; + line-height: 1.5em; + margin: 1.5em 0 1.5em 0; + text-align: center; +} + +div.body > .section > h1 +{ + margin: 0.562em 0 1.5em 0; + padding: 6px 10px; + background-color: #F0F8FD; + border: 1px solid #D2EAFA; + border-width: 0px 0px 0px 8px; + + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + border-radius: 5px; +} + + +div.body h1 + .subtitle { + opacity: 0.54; + font-style: italic; + font-weight: bold; + margin-bottom: 2.25rem; + margin-top: -2.25rem; + text-align: center; +} + +div.body h2, +div.body p.rubric +{ + font-size: 1.875em; + line-height: 1.6em; + margin: 0.8em 0 0.8em 0; +} + +div.body h3 +{ + font-size: 1.625em; + line-height: 1.8461538461538463em; + padding: 3px 5px; + margin: 5px 1px 5px 1px; + background-color: #FDF2E6; + border: 1px solid #F9CB9A; + border-width: 0px 0px 0px 4px; + display: inline; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} + +div.body h2, +div.body p.rubric, +.section.emphasize-children > .section > h3 +{ + padding: 1px 10px; + background-color: #F4FDF9; + border: 1px solid #D4F7E8; + border-width: 0px 0px 0px 6px; + text-align: center; + + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + border-radius: 5px; +} + +.section.emphasize-children > .section > h3 +{ + margin: 0.923em 1px 0.923em 1px; +} + + +div.body p.rubric, +.section.emphasize-children > .section > h3 +{ + background-color: #F7F9E6; /* colore sezione secondo livello */ + border: 1px solid #EAEFBD; + border-width: 1px 1px 1px 4px; + + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + border-radius: 5px; +} + +div.body h2:hover a.headerlink:not(:hover), +section.emphasize-children > .section > h3:hover a.headerlink:not(:hover) +{ + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); + opacity: 0.4; +} + +div.body h2.highlighted, +section.emphasize-children > .section > h3.highlighted +{ + background-color: #FCFFC4; + border-color: #F9FF8A; + color: #333; +} + +div.body h4 { + font-size: 1.25em; + line-height: 1.2em; + margin: 1.2em 01.2em 0; + clear: both; +} + +div.body h5 { + font-size: 1.1em; + line-height: 1.3636363636363635em; + margin: 1.364em 0 1.364em 0; +} + +div.body h6 { + font-size: 1.0em; + line-height: 1.5em; + margin: 1.5em 0 1.5em 0; + } + +.toctree-wrapper.highlight-pages:not(.hide-sections) li.page > a +{ + font-weight: bold; +} + +.toctree-wrapper.space-pages li.page +{ + margin-top: 1em; +} + +.toctree-wrapper.hide-sections li:not(.page) { + list-style: none; + margin-left: -2.5rem; +} +.toctree-wrapper.hide-sections li:not(.page) > a { display: none; } + +#hide-page-sections { float: right; opacity: 0.88; } + +a.headerlink +{ + color: #003469; + font-size: 0.8em; + margin: 0 0 0 1px; + padding: 0 5px 0 4px; + text-decoration: none; + border: 1px solid transparent; + border-width: 1px 0; + + -moz-border-radius: 0.35em; + -webkit-border-radius: 0.35em; + -o-border-radius: 0.35em; + -ms-border-radius: 0.35em; + border-radius: 0.35em; +} + +div.body a.headerlink:hover +{ + background-color: #fff9e4; + border-color: #F8D186; + color: #d39110; + text-decoration: none; +} + +a.headerlink:hover:active +{ + -moz-box-shadow: none; + -webkit-box-shadow: none; + -o-box-shadow: none; + -ms-box-shadow: none; + box-shadow: none; +} + +.html-toggle-button +{ + position: relative; + cursor: pointer; +} + + +.html-toggle-button:hover:after, +.section.emphasize-children > .section > h3.html-toggle-button:hover:after +{ + background: #fff9e4; + border-color: #F8D186; + + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -o-border-radius: 4px; + -ms-border-radius: 4px; + border-radius: 4px; + + -moz-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -webkit-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -o-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -ms-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + color: #d39110; +} + +.html-toggle-button:after +{ + position: relative; + top: -0.15em; + margin: 0; + padding: 0.15em 0.3em; + text-shadow: none; + font-size: 65%; + font-style: italic; + font-weight: bold; + border: 1px solid transparent; +} + +.html-toggle.collapsed > .html-toggle-button:after { content: "[+ show section]"; } +.html-toggle.expanded > .html-toggle-button:after { content: "[- hide section]"; } + + +.html-toggle-button:active:after, +.section.emphasize-children > .section > h3.html-toggle-button:active:after + +{ + position: relative; + top: calc(-0.15em + 1px); + left: 1px; +} + +.clear, .clear-both { clear: both; } + +.clear-left { clear: left; } + +.clear-right { clear: right; } + +.clear-none { clear: none; } + +div.body .clear-none > h3 { clear: none; } + +.hidden { display: none; }div.body p +{ + text-align: justify; + margin: 1.5em 0 1.5em 0; +} + +div.body li, +div.body dd +{ + text-align: justify; +} + +div.body hr { + margin: 0 10px; + background: none; + border: 1px dashed rgba(0,0,0,.15); + border-width: 1px 0 0 0; +} + +.strike +{ + text-decoration: line-through; +} + +a.footnote-reference +{ + font-size: 70%; + position: relative; + top: -.75em; +} + +dl { margin-bottom: 1.5em; } +li > dl:only-child { margin-bottom: 0; } + +dd { margin-right: 10px; } + +dd ol { margin-bottom: 10px; } + +dl.docutils > dt { font-size: 1.1em; margin-bottom: .5em; } +dl.docutils > dd + dt { margin-top: 1.5em; } + + +ul + ul, +ul + div > ul:only-child, +div.toctree-wrapper + ul { margin-top: -1em; } + + +dd ul { margin-bottom: 1.5em; } + + +li > p ~ ul.simple { margin-bottom: 1.5em; } + +a +{ + color: #003469; + text-decoration: none; +} + +a:visited +{ + text-decoration: none; +} + +a:hover +{ + color: #d39110; + background: #fff9e4; + text-decoration: underline; +} + +a:hover:active +{ + left: 1px; + top: 1px; + -moz-box-shadow: 0; + -webkit-box-shadow: 0; + -o-box-shadow: 0; + -ms-box-shadow: 0; + box-shadow: 0; +} + +a.biglink +{ + font-size: 130%; +} + +a.external:before +{ + content: "\21D7"; + padding-right: .1em; +} + +a.external.issue:before +{ + content: "\21D7"; +} + +a.external[href^="mailto:"]:before +{ + content: ""; +} + +em.issue:before +{ + content: "\21D7"; + padding-right: .1em; +} + +dt:target, +.footnote:target, +.highlighted +{ + padding: 4px; + margin: -4px; + background-color: #fbe54e; + + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -o-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +dl.field-list > dd > p:first-child, +dl.field-list > dd > p:first-child:empty + ul.simple li > p:first-child, +dl.field-list > dd > ul:first-child.simple li > p:first-child +{ margin-top: 0; } + +dl.field-list > dd > p:first-child:empty { display: none; } + +div.admonition, p.deprecated +{ + background: #E7F0FE; + font-size: 0.88em; + line-height: 1.7045454545454546em; + margin: 0.705em 0 0.705em 0; + + padding: .5em 1em; + border: 1px solid rgba(0,0,0,.05); + border-width: 1px 0; + + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + border-radius: 5px; + + background-position: .6em .5em; + background-size: auto 1.58em; + background-repeat: no-repeat; + background-image: url("icon-note.png"); +} + +div.caution, div.important { background-color: #FFF7E0; background-image: url("icon-caution.png"); } +div.warning { background-color: #ffe4e4; background-image: url("icon-warning.png"); } +div.danger, div.admonition.error { background-color: #ffe4e4; background-image: url("icon-danger.png"); } + +div.seealso { background-color: #FFF7E0; background-image: url("icon-seealso.png"); } +div.admonition-todo { background-color: #FFF7E0; background-image: url("icon-todo.png"); } +p.deprecated { background-color: #fbece0; background-image: url("icon-deprecated.png"); } + + +div.admonition p, +div.admonition pre, +div.admonition ul, +div.admonition ol { + line-height: 1.7045454545454546em; + margin: 0.0em 0 0.0em 0; +} + +h1 ~ div.admonition { margin-left: 1.5em; margin-right: 1.5em; } +div.admonition.float-right, +div.admonition.floater +{ + float: right; + max-width: 40%; + margin: 0 0 1.5em 1.5em; +} + +.admonition.float-left +{ + float: left; + max-width: 50%; + margin: 0 1.5em 1.5em 0; +} + +.admonition.float-center +{ + clear: both; + max-width: 65%; + margin: 0 auto 1.5em; +} + + p.admonition-title:first-child +{ + margin: -.5em -1em .5em; + padding: .5em .5em .5em 2.65em; + background: rgba(0,0,0,.05); + + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + -o-border-radius: 3px 3px 0 0; + -ms-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; +} + +p.admonition-title:first-child { margin-top: -.5em !important; } + +div.admonition.inline-title p.admonition-title +{ + display: inline; + margin: 0; + padding: 0 .25em 0 1.5em; +} + +div.admonition.inline-title p.admonition-title:after { content: ":"; } +div.admonition.inline-title p.admonition-title + p { display: inline; } +div.admonition.inline-title p.admonition-title + ul { margin-top: 0; } + +div.admonition.inline-title p.admonition-title { background: none; } + +div.admonition.without-title p.admonition-title { + display: none; +} + +div.admonition.without-title +{ + padding-left: 2.65em; +} + +div#todos p.admonition-title +{ + font-weight: normal; + color: #AAA; + font-size: 70%; +} + +div#todos div.admonition-todo + p +{ + font-size: 70%; + text-align: right; + margin-top: -.5em; + margin-bottom: 1.5em; + color: #AAA; +} + +div#todos div.admonition-todo + p a +{ + font-size: 130%; +} + +div.deprecated, div.versionchanged, div.versionadded +{ + font-size: 0.88em; + line-height: 1.7045454545454546em; + margin: 1.705em 0 1.705em 0; + + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60); + opacity: 0.6; +} + +span.versionmodified +{ + font-weight: bold; +} + +.desc-section > .section-header +{ + position: relative; +} + +.desc-section-1 > .section-header +{ + border-width: 0; + background-color: transparent; + border-bottom: 1px solid var(---nested-section-color); + color: var(---nested-section-color); + display: inline-block; +} + +.desc-section-2 > .section-header +{ + border-width: 0; + background-color: transparent; + border-bottom: 1px solid var(---nested-subsection-color); + color: var(---nested-subsection-color); + display: inline-block; +} + +.desc-section > .section-header:before +{ + content: attr(data-nested-label); + font-size: 0.75em; + opacity: 0.75; + letter-spacing: 1px; + font-style: italic; +} + +dl.object > dt, +dl.data > dt, +dl.function > dt, +dl.method > dt, +dl.attribute > dt, +dl.class > dt, +dl.exception > dt, +dl.classmethod > dt, +dl.staticmethod > dt +{ + display: inline-block; + padding: 0.3em 1em 0.3em 0.6em; + border: rgba(0,0,0,0.1) solid 1px; + border-width: 0 0 0 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} + +dl.has-headerlink > dt, +dl.has-headerlink > dt +{ + padding-right: 0; +} + +dl.object > dt, +dl.data > dt, +dl.attribute > dt +{ + background-color: var(---object-color-bg); + border: var(---object-color-bg2) solid; + border-width: 0 0 0 3px; +} + +dl.function > dt, +dl.method > dt, +dl.classmethod > dt, +dl.staticmethod > dt +{ + background-color: var(---function-color-bg); + border: var(---function-color-bg2) solid; + border-width: 0 0 0 3px; +} + +dl.class > dt { + background-color: var(---class-color-bg); + border: var(---class-color-bg2) solid; + border-width: 0 0 0 3px; +} + +dl.exception > dt { + background-color: var(---exception-color-bg); +} + +dl.object > dt:before, +dl.data > dt:before, +dl.function > dt:before, +dl.method > dt:before, +dl.attribute > dt:before, +dl.class > dt > .property:first-child, +dl.exception > dt > .property:first-child, +dl.classmethod > dt > .property:first-child, +dl.method[subtype] > dt > .property:first-child, +dl.staticmethod > dt > .property:first-child +{ + font-size: 0.8em; + font-weight: bold; + font-style: italic; + letter-spacing: 0.1em; + color: #rgba(0,0,0,0.3); +} + +.desc-section dl.attribute > dt:before +{ + content: "attr"; + padding-right: 0.6em; +} + +.desc-section dl.function > dt:before +{ + content: "func"; + padding-right: 0.6em; +} + +.desc-section dl.method:not([subtype]) > dt:before +{ + content: "method"; + padding-right: 0.6em; +} + +dl > dt.highlighted +{ + background: #fbe54e; +} + +.viewcode-link +{ + position: absolute; + right: 0; + margin-right: 1.5em; + margin-right: calc(1em + 10px); +} + +@import url("cloud_media.css"); diff --git a/docs_build/_static/cloud_code.css b/docs_build/_static/cloud_code.css new file mode 100644 index 00000000..91cc4484 --- /dev/null +++ b/docs_build/_static/cloud_code.css @@ -0,0 +1,154 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +div.highlight +{ + background: none; + margin: 1.5em 0; +} + +div.highlight pre, +td.linenos pre +{ + padding: 10px; + + font-family: "Roboto Mono", monospace; + font-size: 85%; + line-height: 1.5em; +} + +div.highlight pre +{ + background-color: #FEFFE2; + border: 1px solid #C4CF00; + border-style: solid solid solid solid; + + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + -o-border-radius: 6px; + -ms-border-radius: 6px; + border-radius: 6px; + color: #111111; +} + +div[class|="highlight"] + div[class|="highlight"] +{ + margin-top: -1.5em; +} + +code +{ + font-family: "Roboto Mono", monospace; + font-size: 90%; +} + +code.literal +{ + background-color: rgba(0,0,0,.075); + border: 1px solid rgba(0,0,0,.05); + padding: 0px 4px; + margin: 1px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -o-border-radius: 4px; + -ms-border-radius: 4px; + border-radius: 4px; +} + +p code.literal { white-space: nowrap; } + +code.samp.literal > em +{ + font-family: "Roboto Mono", monospace; + padding: 0 1px; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60); + opacity: 0.6; +} + +code.samp.literal > em:before { content: "{"; } +code.samp.literal > em:after { content: "}"; } + +h1 code.literal +{ + font-size: 80%; +} + +h1 code.samp.literal > em +{ + font-weight: normal; +} + +a.reference code.literal, +div.related a code.literal, +code.literal.xref +{ + background-color: transparent; + border: none; + padding: 0; + margin: 0; +} + +.viewcode-back +{ + font-family: var(---font0), sans-serif; +} + +div.viewcode-block:target +{ + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} + +.highlight .copybutton +{ + position: absolute; + right: 0; + top: 0; + + margin: 0; + padding: 0 6px; + + background: transparent; + border: 1px solid transparent; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; + + font-size: 75%; + color: #777777; + white-space: nowrap; + cursor: pointer; +} + +.highlight .copybutton.active +{ + text-decoration: line-through; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); + opacity: 0.8; +} + +.highlight:not(:hover) .copybutton:not(.active) +{ + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70); + opacity: 0.7; +} + +.viewcode-link +{ + position: absolute; + right: 0; + margin-right: 1.5em; + margin-right: calc(1em + 10px); +} diff --git a/docs_build/_static/cloud_colors.css b/docs_build/_static/cloud_colors.css new file mode 100644 index 00000000..b62ab933 --- /dev/null +++ b/docs_build/_static/cloud_colors.css @@ -0,0 +1,56 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +:root { + + ---font0: "Roboto"; /* Open Sans, Oxygen, Montserrat Alternates */ + ---font1: "Open Sans"; + ---font2: "Roboto Mono"; /* Open Sans, Oxygen, Montserrat Alternates */ + + ---nested-section-color: #F00; + ---nested-subsection-color: #F0F; + + ---object-color-bg: #FEF6F7; + ---object-color-bg2: #FDECEF; + ---function-color-bg: #F0F8FD; + ---function-color-bg2: #D2EAFA; + ---class-color-bg: #F4FDF9; + ---class-color-bg2: #DEF9EE; + ---exception-color-bg: #F0F; + + ---barra-top-bottom-bg: #606060; + ---barra-top-bottom-bg2: #FFF; + ---barra-top-bottom-bg3: #808080; + ---barra-top-bottom-ray: 15px; + ---barra-top-bottom-buttom-color: #000; + ---barra-top-bottom-buttom-ray: 8px; + + ---footer-color: #B0B0B0; + ---footer-color-bg: #FFF; + ---footer-color-text: #000; + + ---pannello-principale-bg: #FFF; + ---pannello-destro-bg: #GGG; + ---pannello-destro-colore-testo: #000; + + ---pannello-sinistro-bg: #F0F0F0; + ---pannello-sinistro-bordo: #000; + ---pannello-sinistro-ray: 8px; + + ---colore-quick-search: #777; + ---colore-toc: #777; + ---tasto-go-bg: #F2F2F2; + ---highlight_color: #F2DE37; + + ---pre-bg: #FCFDF7; + ---pre-border: #EAEFBD; + ---pre-text: color: #111111; +} diff --git a/docs_build/_static/cloud_media.css b/docs_build/_static/cloud_media.css new file mode 100644 index 00000000..f1742ce3 --- /dev/null +++ b/docs_build/_static/cloud_media.css @@ -0,0 +1,117 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +@media only screen and (min-device-width: 16in) +{ +} + +@media only screen and (min-width: 11.5in) +{ +} + +@media only screen and (min-width: 700px) +{ + .show-for-small { display: none !important; } +} + + +@media only screen and (max-width: 11.5in), + only screen and (max-width: 700px), + only screen and (max-device-width: 700px), + handheld +{ + div.relbar-top, div.relbar-bottom + { + padding: 0; + } + + button.sidebar-toggle#sidebar-show + { + left: 0; + border-bottom-left-radius: 0; + } +} + + +@media only screen and (max-width: 700px), + only screen and (max-device-width: 700px), + handheld +{ + body { + font-size: 75%; + } + div.related > ul > li.right + li:not(.right) { font-weight: bold; } + div.related > ul > li:not(.right) + li { display: none; } + + div.bodywrapper + { + margin-left: 0; + } + + div.document.document-hidden div.documentwrapper + { + display: none; + } + + div.body h2, + div.body p.rubric, + .section.emphasize-children > .section > h3 + { + padding-top: 0.25em; + padding-bottom: .25em; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; + } + .hide-for-small { display: none; } +} + +@media print +{ + div.body { + border: 0; + -moz-box-shadow: none; + -webkit-box-shadow: none; + -o-box-shadow: none; + -ms-box-shadow: none; + box-shadow: none; + } + + .sidebar-toggle-group { display: none; } + div.body h1, + div.body h2, + div.body p.rubric, + div.body h3, + div.body h4, + div.body h5, + div.body h6 + { + color: #333 !important; + text-shadow: none !important; + border: none !important; + padding: 0; + } + + .html-toggle.expanded > .html-toggle-button:after + { + display: none; + } + + .html-toggle.collapsed > .html-toggle-button:after + { + content: "[not printed]" !important; + } + +} + +@import url("cloud_media.css"); diff --git a/docs_build/_static/cloud_sidebar.css b/docs_build/_static/cloud_sidebar.css new file mode 100644 index 00000000..46cbf58e --- /dev/null +++ b/docs_build/_static/cloud_sidebar.css @@ -0,0 +1,422 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +div.document.sidebar-hidden div.bodywrapper { + margin-left: 0; + margin-right: 0; +} + +div.sphinxsidebar { + margin-top: 16px; + width: 3in; + + font-size: 90%; /* dimsnione testo barra laterale */ + line-height: 1.25em; + margin-bottom: 16px; + + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -o-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + + background: var(---pannello-sinistro-bg); + border: 1px solid var(---pannello-sinistro-bordo); + + -moz-border-radius: var(---pannello-sinistro-ray); + -webkit-border-radius: var(---pannello-sinistro-ray); + -o-border-radius: var(---pannello-sinistro-ray); + -ms-border-radius: var(---pannello-sinistro-ray); + border-radius: var(---pannello-sinistro-ray); + + -moz-box-shadow: 1px 1px 1px rgba(0,0,0,.05); + -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.05); + -o-box-shadow: 1px 1px 1px rgba(0,0,0,.05); + -ms-box-shadow: 1px 1px 1px rgba(0,0,0,.05); + box-shadow: 1px 1px 1px rgba(0,0,0,.05); +} + +div.document.sidebar-hidden div.sphinxsidebar { display: none; } + +div.sphinxsidebarwrapper { + padding-top: 10px; + padding-bottom: 10px; + padding-right: 10px; + padding-left: 10px; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + padding: 3px; + margin-top: 15px; + margin-bottom: 10px; + margin-right: 0; + margin-left: 0; + font-family: var(---font1), serif; + font-weight: normal; + color: var(---colore-quick-search); /* Colore Quick Search */ +} + +div.sphinxsidebar h3 { font-size: 1.4em; } +div.sphinxsidebar h4 { font-size: 1.3em; } + +div.sphinxsidebar h3 a, +div.sphinxsidebar h4 a { + color: var(---colore-toc); /* colore Table of Contents */ +} + +div.sphinxsidebar p { + color: #777777; +} + +div.sphinxsidebar p.topless { + margin: 10px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + /* margin-right: 0; */ + padding: 0; + color: #777777; +} + +div.sphinxsidebar a { + color: #003469; + border: 1px solid transparent; + border-width: 1px 0; +} + +div.sphinxsidebar a:hover { + color: #d39110; + background: #fff9e4; + border-color: #F8D186; + text-decoration: none; +} + +div.sphinxsidebar ul li a { + overflow: hidden; + white-space: nowrap; +} + +div.sphinxsidebar ul li a:hover { + display: inline-table; + min-width: 98%; + min-width: calc(100% - 5px); +} + +div.sphinxsidebar a:active { + color: #777777; +} + +div.sphinxsidebar p.logo { + display: block; + margin: 10px auto 10px auto; /* centratura logo */ + align: center; + text-align: center; + max-width: 90%; +} + +div.sphinxsidebar p.logo a { + display: inline-block; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} + + +div.sphinxsidebarwrapper > h3:first-child, +div.sphinxsidebarwrapper > h4:first-child, +div.sphinxsidebarwrapper > div:first-child > h3:first-child, +div.sphinxsidebarwrapper > div:first-child > h4:first-child +{ + margin-top: .2em; +} + +div.sphinxsidebar ul, +div.sphinxsidebar ul ul, +div.sphinxprev p.topless, +div.sphinxnext p.topless { + list-style: none; + margin-left: 0; +} + +div.sphinxsidebar ul ul { + margin-left: 1.5em; +} + + +div.sphinxsidebar ul a, +div.sphinxprev a, +div.sphinxnext a { + position: relative; + display: block; + padding: 1px 4px 3px 5px; + margin: 0 5px 0 0; + border: 1px solid transparent; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} + +div.sphinxsidebar ul a:hover, +div.sphinxprev a:hover, +div.sphinxnext a:hover { + background: #fff9e4; + border-color: #F8D186; + color: #d39110; + text-decoration: none; +} + +div.sphinx-toc ul a:not([href^="#"]):hover { + position: relative; + overflow: visible; +} + +div.sphinx-toc ul a:not([href^="#"]):hover:before { + content: "⇒"; + position: absolute; + right: 100%; + font-size: 1.5em; + margin-right: 4px; + opacity: 0.7; +} + +div.sphinxglobaltoc ul a[href="#"] { + font-style: italic; +} + +div.sphinxglobaltoc ul a:not([href*="#"]) { + font-size: 0.95em; + font-style: italic; +} + +div.sphinx-toc li { + position: relative; +} + +div.sphinx-toc li:before { + position: absolute; + left: -0.8em; + color: #d39110; /* colore "▶" */ +} + +div.sphinx-toc li.current.active:not(.focus):before { + content: "▼"; + top: 0.1em; + opacity: 0.5; +} + +div.sphinx-toc li.focus.local:before { + content: "▶"; + opacity: 0.7; +} + +div.sphinx-toc > ul:not(:hover) li.focus.child:beforec { + content: "⇒"; + opacity: 0.5; + font-size: 1.5em; + margin-left: -4px; +} + +div.sphinx-toc li.focus.local > a:not(:hover) { + color: #d39110; /* colore testo a desta "▶" */ +} + +div.sphinx-toc li.toc-toggle > a:after { + content: "[–]"; + padding-left: .25em; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); + opacity: 0.5; +} + +div.sphinx-toc li.toc-toggle.closed > a:after { + content: "[+]"; +} + +div#searchbox { + margin-right: 10px; /* make this match sphinxsidebarwrapper left margin */ +} + +div#searchbox form > div { + display: inline-block; + margin-right: -0.4em; +} + +div.sphinxsidebar input, +h1#search-documentation ~ form input { + border: 1px solid rgba(0,0,0,.15); + font-family: sans-serif; + font-size: 1em; +} + +div#searchbox input[type="submit"], +h1#search-documentation ~ form > input[type="submit"] { + background: var(---tasto-go-bg); + + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + -o-border-radius: 0 5px 5px 0; + -ms-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} + +div#searchbox input[type="submit"]:hover, +h1#search-documentation ~ form input[type="submit"]:hover, +button.sidebar-toggle#sidebar-hide:hover, +button.sidebar-toggle#sidebar-show:hover, +.highlight .copybutton:hover +{ + background: #fff9e4; + color: #d39110; + border-color: #F8D186; +} + +h1#search-documentation ~ form input[type="text"]:focus, +div.sphinxsidebar input[type="text"]:focus { + border-color: #F8D186; +} + +div.sphinxsidebar button:hover:not(:active), +div.sphinxsidebar input[type="submit"]:hover:not(:active), +h1#search-documentation ~ form input[type="submit"]:hover, +button.sidebar-toggle:hover:not(:active) +{ + -moz-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -webkit-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -o-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + -ms-box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); + box-shadow: 1px 1px 2px -1px rgba(0,0,0,0.5); +} + +button.sidebar-toggle::-moz-focus-inner { + border: 0; +} + +div.sphinxsidebar .searchtip { + color: #999999; +} + +#searchbox .highlight-link a[href$="hideSearchWords()"] { + display: block; + padding: 0 1em; + font-size: 80%; + text-align: right; +} + +#searchbox .highlight-link a[href$="hideSearchWords()"]:before { + content: "\00D7"; + font-weight: bold; + padding-right: 0.25em; +} + +.sidebar-toggle-group { + position: absolute; + width: 3in; + top: 0; + left: 0; + z-index: 1; +} + +.sidebar-toggle-group.no-js { display: none; } + +div.document.sidebar-hidden .sidebar-toggle-group { + width: auto; +} + +div.document.document-hidden .sidebar-toggle-group { + width: 100%; +} + +button.sidebar-toggle { + margin: 0; + padding: 6px 12px; + + color: #777777; + font-size: 1em; + white-space: nowrap; +} + +button#sidebar-hide { + position: absolute; + top: 16px; + right: 0; + background: transparent; + border: 1px solid rgba(0,0,0,.05); + border-bottom-left-radius: 0.7em; +} + +button#sidebar-show { + position: absolute; + top: 0; + left: 10px; + + background: #F2F2F2; + border: 1px solid rgba(0,0,0,.15); + + border-bottom-right-radius: 0.7em; + border-bottom-left-radius: 0.7em; +} + +#table-of-contents > h1, +h1#search-documentation +{ + padding: 6px 10px; + background-color: #84A6C7; + border: 1px solid rgba(0,0,0,.125); + border-width: 0 0 0 6px; + color: #FFF; /* colore testo sezioni */ + /* text-shadow: 1px 1px rgba(0,0,0,.125); */ + + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + border-radius: 5px; +} + +#table-of-contents > h1, +h1#search-documentation +{ + margin: 0.8em 1px 0.8em 1px; +} + +#table-of-contents > h1, +h1#search-documentation { + margin-top: 0; +} + +.toctree-wrapper.highlight-pages:not(.hide-sections) li.page > a { + font-weight: bold; +} + +.toctree-wrapper.space-pages li.page { + margin-top: 1em; +} + +.toctree-wrapper.hide-sections li:not(.page) { + list-style: none; + margin-left: -2.5rem; +} +.toctree-wrapper.hide-sections li:not(.page) > a { + display: none; +} + +div.sphinxsidebar code.literal { + background-color: transparent; + border: none; + padding: 0; + margin: 0; +} diff --git a/docs_build/_static/cloud_tables.css b/docs_build/_static/cloud_tables.css new file mode 100644 index 00000000..49c198da --- /dev/null +++ b/docs_build/_static/cloud_tables.css @@ -0,0 +1,173 @@ +/***************************************************** +* cloud.css_t +* ~~~~~~~~~~~ +* +* stylesheet for "Cloud" theme for Sphinx. +* +* :copyright: Copyright 2011-2012 by Assurance Technologies +* :license: BSD +* +*****************************************************/ + +table.docutils.footnote { margin: 1em 0 0 1em; } + +table.fullwidth { width: 100%; } + +table.centered { margin-left: auto; margin-right: auto; } + +table.docutils.plain { border: none; } +table.docutils.plain tr.row-odd > * { background: none; } + + +table.docutils.html-plain-table tr.row-odd > * { background: none; } + + +table.docutils.align-right { margin-left: auto; } + +table.docutils tbody +{ + vertical-align: top; +} + +table.docutils th p:first-child, +table.docutils td p:first-child +{ + margin-top: 0; +} + +table.docutils th p:last-child, +table.docutils td p:last-child +{ + margin-bottom: 0; +} + +table.docutils th { + border: 0 solid transparent; + padding: .4em; + font-family: var(---font1); + background: rgba(0,0,0,.15); +} + +table.docutils th.head:not(.stub) { + border-bottom: 1px solid rgba(0,0,0,.15); +} + +table.docutils th.stub + td +{ + border-left: 1px solid rgba(0,0,0,.15); +} + +table.docutils td { + padding: .4em; + border: 0 solid rgba(0,0,0,.15); +} +table.docutils tr.row-odd td { background: rgba(0,0,0,.06); } + +h2 + table.docutils { margin-top: 1em; } +table > caption { margin: 1em 0 .5em; font-style: italic; } + +table.docutils th + .single-left-divider, +table.docutils th + .double-left-divider { border-left-width: 0; } + +p + [class|=highlight] > table.highlighttable +{ + margin-top: -1em; + + margin-bottom: -1em; +} + +table.highlighttable { display: block; } +table.highlighttable tbody { display: block; } +table.highlighttable tr { display: flex; align-items: flex-start; justify-content: flex-start; } +table.highlighttable td { display: block; padding: 0; } +table.highlighttable td.code { width: 100%; max-width: calc(100% - 1em); } +table.highlighttable div.linenodiv { margin-top: 2.2em; } +table.highlighttable div.linenodiv pre +{ + background: none; + border: 0; + margin: 0; + padding: 0; + padding-right: .5em; +} + +table.indextable span.category +{ + font-size: 80%; + font-style: italic; + color: #84ADBE; +} + +table.indextable a, +table.indextable a:hover span.category +{ + color: #003469; +} + +table.indextable span.category span.location +{ + font-weight: bold; +} + +table.indextable td > dl > dt +{ + margin-bottom: .5em; +} + +table.indextable td > dl > dd > dl +{ + margin-top: -.5em; + margin-bottom: .5em; +} + +p + [class|=highlight] > table.highlighttable +{ + margin-top: -1em; + + margin-bottom: -1em; +} + +table.highlighttable { display: block; } +table.highlighttable tbody { display: block; } +table.highlighttable tr { display: flex; align-items: flex-start; justify-content: flex-start; } +table.highlighttable td { display: block; padding: 0; } +table.highlighttable td.code { width: 100%; max-width: calc(100% - 1em); } +table.highlighttable div.linenodiv { margin-top: 2.2em; } +table.highlighttable div.linenodiv pre +{ + background: none; + border: 0; + margin: 0; + padding: 0; + padding-right: .5em; +} + + +table.indextable span.category +{ + font-size: 80%; + font-style: italic; + color: #84ADBE; +} + +table.indextable a, +table.indextable a:hover span.category +{ + color: #003469; +} + +table.indextable span.category span.location +{ + font-weight: bold; +} + +table.indextable td > dl > dt +{ + margin-bottom: .5em; +} + +table.indextable td > dl > dd > dl +{ + margin-top: -.5em; + margin-bottom: .5em; +} diff --git a/docs_build/images/exampleSurf.png b/docs_build/images/exampleSurf.png new file mode 100644 index 00000000..73ccc3b8 Binary files /dev/null and b/docs_build/images/exampleSurf.png differ diff --git a/docs_build/images/exampleSurf.svg b/docs_build/images/exampleSurf.svg new file mode 100644 index 00000000..c49b4b5f --- /dev/null +++ b/docs_build/images/exampleSurf.svg @@ -0,0 +1,31650 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs_build/images/exampleVec.png b/docs_build/images/exampleVec.png new file mode 100644 index 00000000..73b474b7 Binary files /dev/null and b/docs_build/images/exampleVec.png differ diff --git a/docs_build/images/exampleVec.svg b/docs_build/images/exampleVec.svg new file mode 100644 index 00000000..9e29f355 --- /dev/null +++ b/docs_build/images/exampleVec.svg @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs_build/logo.png b/docs_build/logo.png deleted file mode 100644 index 6899d26f..00000000 Binary files a/docs_build/logo.png and /dev/null differ diff --git a/docs_build/md2rts.rb b/docs_build/md2rts.rb new file mode 100644 index 00000000..b45ab4af --- /dev/null +++ b/docs_build/md2rts.rb @@ -0,0 +1,2 @@ +# +system("pandoc #{ARGV[0]}.md --from markdown --to rst -s -o #{ARGV[0]}.rst"); diff --git a/docs_build/project_common.py b/docs_build/project_common.py index 1c94a9f1..169e5d92 100644 --- a/docs_build/project_common.py +++ b/docs_build/project_common.py @@ -1,14 +1,77 @@ -project = 'Splines' +# pip install sphinxcontrib-email +# pip install importlib_metadata +# pip install cloud_sptheme +# pip install exhale +# pip install sphinxcontrib-pyexec + +import exhale +import os +import re +import glob +import os.path +from pprint import pprint + +def do_filter(project, dir, filter = "/**/*.rst", regex=None): + if regex is None: + regex = re.compile(r"^(\s*\.\.\s*doxygen.*::.*)$", flags=re.IGNORECASE) + for fl in glob.glob(dir+filter,recursive=True): + #print(fl) + with open(fl) as fp: + file_data = fp.read() + with open(fl, "w") as fp: + for line in file_data.splitlines(): + match = regex.match(line) + if match: + fp.write(f"{match.group(1)}\n :project: {project}\n") + else: + fp.write(line+'\n') + +saved_exhale_environment_ready = exhale.environment_ready + +def exhale_environment_ready(app): + exhale_projects_args = dict(app.config._raw_config['exhale_projects_args']) + breathe_projects = dict(app.config._raw_config['breathe_projects']) + breathe_default_project = app.config._raw_config['breathe_default_project'] + + for project in breathe_projects: + app.config.breathe_default_project = project + ##app.config._raw_config['rst_prolog'] = ".. |xml| replace:: %s\n" % (project) + os.makedirs(breathe_projects[project], exist_ok=True) + + project_exhale_args = exhale_projects_args.get(project, {}) + app.config.exhale_args = dict(project_exhale_args) + #app.config.exhale_args["containmentFolder"] = os.path.realpath(app.config.exhale_args["containmentFolder"]) + print("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n") + print("="*75) + print(project) + print("-"*50) + pprint(app.config.exhale_args) + print("="*75) + + saved_exhale_environment_ready( app ) + + dir = app.config.exhale_args["containmentFolder"]; + ##os.system("ruby ../filter_exhale_breathe.rb %s %s" % (dir, project)); + do_filter(project,dir) + + print("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n") + + app.config.breathe_default_project = breathe_default_project + +exhale.environment_ready = exhale_environment_ready + +project = "Splines" copyright = '2021, Enrico Bertolazzi' author = ':email:`Enrico Bertolazzi `' -version = os.popen('git describe --tags').read() +version = os.popen('git describe --tags --abbrev=0').read() ##release = '1.0' # The master toctree document. master_doc = 'index' # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = [ '../_templates' ] +html_static_path = ['../_static'] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -17,16 +80,21 @@ # The `extensions` list should already be in here from `sphinx-quickstart` extensions = [ - #'breathe', - #'exhale', - 'm2r2', # funziona! # standard sphinx extensions 'sphinx.ext.autodoc', 'sphinx.ext.todo', + #'sphinx.ext.doctest', + #'sphinx.ext.coverage', + 'sphinx.ext.mathjax', + #'sphinx.ext.ifconfig', + #'sphinx.ext.githubpages', + #'sphinx.ext.intersphinx', + #'sphinx.ext.graphviz', + #'sphinx.ext.inheritance_diagram', # 3rd party extensions #'sphinxcontrib.fulltoc', - 'sphinx.ext.viewcode', # mainly to make sure layout works properly + 'sphinxcontrib.email', # cloud's extensions 'cloud_sptheme', @@ -35,19 +103,6 @@ 'cloud_sptheme.ext.escaped_samp_literals', 'cloud_sptheme.ext.issue_tracker', 'cloud_sptheme.ext.table_styling', - #'cloud_sptheme.ext.role_index', # NOTE: used only to provide example role index - - #'sphinx.ext.doctest', - #'sphinx.ext.coverage', - 'sphinx.ext.mathjax', - #'sphinx.ext.ifconfig', - #'sphinx.ext.githubpages', - #'sphinx.ext.intersphinx', - #'sphinx.ext.graphviz', - #'sphinx.ext.inheritance_diagram', - #'guzzle_sphinx_theme', - #'sphinx_typo3_theme', - 'sphinxcontrib.email' ] source_suffix = ['.rst', '.md'] @@ -59,7 +114,6 @@ highlight_language = 'cpp' html_theme = 'cloud' -##html_logo = '../logo.png' html_logo = '../Spline_interpolation.svg' email_automode = True @@ -68,56 +122,33 @@ html_theme_options = { "lighter_header_decor" : False, "borderless_decor" : False, - "bodyfont" : "Arial, sans-serif", - "headfont" : "Arial, sans-serif", - - #styling for document body - "bgcolor" : "#f8f8f8", - "linkcolor" : "#006906", - - #styling for document headers - "headlinkcolor" : "#327438", - - #styling for section headers - "sectiontextcolor" : "inherit", - "sectionbgcolor" : "#75c47c", - "sectiontrimcolor" : "rgba(0,0,0,.1)", - "rubricbgcolor" : "#d2e7d0", - "rubric_trim_color" : "rgba(0,0,0,0.05)", - - "object_default_color" : "#e4e4e4", - "object_function_color" : "#eefbff", - "object_class_color" : "#fff3df", - "object_attribute_color" : "#ffd5ff", - "object_exception_color" : "#e9ffd0", - - #styling for footer / html background - "footerbgcolor" : "#6f6700", - - #styling for sidebar - "sidebarbgcolor" : "#ededed", - "sidebarlinkcolor" : "#006906", - "sidebarhighcolor" : "#FFF5DD", - "bodytrimcolor" : "rgba(0,0,0,.15)", - - #styling for top & bottom relbars - "relbarbgcolor" : "#57A75E", - - # code blocks - "codebgcolor" : "#e8ffe6", - "codetrimcolor" : "#129100", - - # admonitions - "admonition_note_color" : "#D9E4F1", - "admonition_warning_color" : "#EBC5A7", - "admonition_seealso_color" : "#eeeeee", - "admonition_deprecated_color" : "#ffebab", - "admonition_todo_color" : "#eeeeee", - - # inline literals - "quotebgcolor" : "rgba(0,0,0,.06)", - "quotetrimcolor" : "transparent", - - # index page - "index_category_color" : "#999999" } + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +##html_sidebars = {'**': ['searchbox.html', 'globaltoc.html']} +html_sidebars = { '**': ['searchbox.html', 'globaltoc.html'] } + +# relbar_links = [("genindex2","MATLAB index")] + +# If false, no module index is generated. +# html_domain_indices = False + +# If false, no index is generated. +# html_use_index = False + +# If true, the index is split into individual pages for each letter. +# html_split_index = True + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +html_title = "%s v%s" % (project, version) + +# A shorter title for the navigation bar. Default is the same as html_title. +html_short_title = "%s" % (project) + +html_copy_source = False +html_show_sourcelink = False diff --git a/docs_build/sphinx/conf.py b/docs_build/sphinx/conf.py index f2bbec29..c5729baf 100644 --- a/docs_build/sphinx/conf.py +++ b/docs_build/sphinx/conf.py @@ -1,22 +1,115 @@ # -*- coding: utf-8 -*- import os -from past.builtins import execfile +from pathlib import Path # -- Project information ----------------------------------------------------- -execfile('../project_common.py') +exec(open("../project_common.py").read()) extensions.append('breathe'); -extensions.append('sphinx.ext.intersphinx'); +extensions.append('exhale'); -#intersphinx_mapping = { -# 'c_interface': ('../../otherbook/build/html/objects.inv', None), -#} - -# Setup the breathe extension breathe_projects = { - project: "../xml", - project+"_c": "../xml-c", - project+"_cpp": "../xml-cpp", - project+"_matlab": "../xml-matlab" + "doc_matlab": "_doxygen/"+"doc_matlab/xml-matlab", + "doc_cpp": "_doxygen/"+"doc_cpp/xml-cpp", + "doc_c": "_doxygen/"+"doc_c/xml-c", +} + +breathe_default_project = "doc_c" + +dir_path_cpp = os.path.dirname(os.path.realpath(__file__))+"../../../src" +dir_path_cpp = Path(dir_path_cpp).resolve() + +dir_path_c = os.path.dirname(os.path.realpath(__file__))+"../../../src" +dir_path_c = Path(dir_path_c).resolve() + +dir_path_matlab = os.path.dirname(os.path.realpath(__file__))+"../../../toolbox/lib" +dir_path_matlab = Path(dir_path_matlab).resolve() + +doxygen_common_stdin = """ + EXTRACT_ALL = YES + SOURCE_BROWSER = YES + EXTRACT_STATIC = YES + HIDE_SCOPE_NAMES = NO + CALLER_GRAPH = YES + GRAPHICAL_HIERARCHY = YES + HAVE_DOT = YES + QUIET = NO + GENERATE_TREEVIEW = YES + SHORT_NAMES = YES + IMAGE_PATH = ../images + + XML_PROGRAMLISTING = YES + RECURSIVE = NO + FULL_PATH_NAMES = YES + ENABLE_PREPROCESSING = YES + MACRO_EXPANSION = YES + SKIP_FUNCTION_MACROS = NO + EXPAND_ONLY_PREDEF = NO + INHERIT_DOCS = YES + INLINE_INHERITED_MEMB = YES + EXTRACT_PRIVATE = YES + PREDEFINED += protected=private + GENERATE_HTML = NO +""" + +exhale_projects_args = { + # Third Party Project Includes + "doc_matlab": { + 'verboseBuild': True, + "rootFileName": "root.rst", + "createTreeView": True, + "exhaleExecutesDoxygen": True, + "doxygenStripFromPath": str(dir_path_matlab), + "exhaleDoxygenStdin": ''' + INPUT = ../../toolbox/lib + PREDEFINED += protected=private + XML_OUTPUT = xml-matlab + EXTENSION_MAPPING = .m=C++ + FILE_PATTERNS = *.m + FILTER_PATTERNS = *.m=./m2cpp.pl +'''+doxygen_common_stdin, + "containmentFolder": os.path.realpath('./api-matlab'), + "rootFileTitle": "MATLAB API", + "lexerMapping": { r".*\.m": "MATLAB" } + }, + + "doc_cpp": { + 'verboseBuild': True, + "rootFileName": "root.rst", + "createTreeView": True, + "exhaleExecutesDoxygen": True, + "doxygenStripFromPath": str(dir_path_cpp), + "exhaleDoxygenStdin": ''' + INPUT = ../../src + PREDEFINED += protected=private + XML_OUTPUT = xml-cpp + EXCLUDE_PATTERNS = SplinesCinterface.* +'''+doxygen_common_stdin, + "containmentFolder": os.path.realpath('./api-cpp'), + "rootFileTitle": "C++ API", + }, + + "doc_c": { + 'verboseBuild': True, + "rootFileName": "root.rst", + "createTreeView": True, + "exhaleExecutesDoxygen": True, + "doxygenStripFromPath": str(dir_path_c), + "exhaleDoxygenStdin": ''' + INPUT = ../../src + PREDEFINED += protected=private + XML_OUTPUT = xml-c + FILE_PATTERNS = SplinesCinterface.* *.h *.c +'''+doxygen_common_stdin, + "containmentFolder": os.path.realpath('./api-c'), + "rootFileTitle": "C API", + } } -breathe_default_project = project + +cpp_index_common_prefix = ['Splines::'] + +# If false, no module index is generated. +html_domain_indices = True + +# If false, no index is generated. +html_use_index = True diff --git a/docs_build/filter.rb b/docs_build/sphinx/filter.rb similarity index 63% rename from docs_build/filter.rb rename to docs_build/sphinx/filter.rb index b5ccf727..a5bba81c 100644 --- a/docs_build/filter.rb +++ b/docs_build/sphinx/filter.rb @@ -1,20 +1,13 @@ require 'fileutils' -index='./sphinx/_build/html/genindex.html' +index='./_build/html/genindex.html' +#system("sed -i .bak 's/(C\+\+ class)/(MATLAB class)/g' #{index}"); +#system("sed -i .bak 's/(C\+\+ function)/(MATLAB function)/g' #{index}"); system("sed -i .bak 's/(C\+\+ class)/(class)/g' #{index}"); system("sed -i .bak 's/(C\+\+ function)/(function)/g' #{index}"); FileUtils.rm "#{index}.bak" -# -# to_be_removed = 'in<\/span> *self<\/span><\/em>,*' -# to_be_removed0 = ' *in<\/span> *' -# to_be_removed1 = 'self<\/span><\/em>,* *' -# to_be_removed2 = 'self)<\/span>' -# -# to_be_removed3 = '(in<\/span> *)' -# to_be_removed4 = '(in<\/span> *self)<\/span>' -# subs3 = '()<\/span>' -Dir.glob("./sphinx/_build/html/api-matlab/*.html").each do |f| +Dir.glob("./_build/html/api-matlab/*.html").each do |f| puts "filter: #{f}" out = ""; File.open(f,"r") do |file| diff --git a/docs_build/sphinx/index.rst b/docs_build/sphinx/index.rst index a5eb53ec..f94fe69d 100644 --- a/docs_build/sphinx/index.rst +++ b/docs_build/sphinx/index.rst @@ -1,20 +1,19 @@ -.. Splines documentation master file, created by - sphinx-quickstart on Fri Mar 19 01:43:44 2021. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - Splines ======= -Splines is a set of C++ classes (with MATLAB mex interface) which implements various spline interpolation. +**by Enrico Bertolazzi** -Contents --------- +Splines is a set of C++ classes (with MATLAB mex interface) +which implements various spline interpolation algorithm. .. toctree:: - :maxdepth: 2 - readme.rst - api-cpp/library_root.rst - api-c/library_root.rst - api-matlab/library_root.rst + readme.rst + api-cpp/root.rst + api-c/root.rst + api-matlab/root.rst + +License +------- + +.. literalinclude:: ../../License.txt diff --git a/docs_build/sphinx/readme.rst b/docs_build/sphinx/readme.rst index 7b3d4286..a6210d3d 100644 --- a/docs_build/sphinx/readme.rst +++ b/docs_build/sphinx/readme.rst @@ -1,11 +1 @@ - .. include:: ../../README.rst - -License -------- - -.. literalinclude:: ../../license.txt - -.. - mdinclude:: ../../README.md -.. diff --git a/docs_build/sphinx_c/Makefile b/docs_build/sphinx_c/Makefile deleted file mode 100644 index d4bb2cbb..00000000 --- a/docs_build/sphinx_c/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs_build/sphinx_c/conf.py b/docs_build/sphinx_c/conf.py deleted file mode 100644 index b9ba8e4a..00000000 --- a/docs_build/sphinx_c/conf.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- coding: utf-8 -*- -import os -from past.builtins import execfile - -# -- Project information ----------------------------------------------------- -execfile('../project_common.py') - -# Setup the breathe extension -breathe_projects = { project+"_c": "../xml-c" } -breathe_default_project = project+"_c" - -extensions.append('exhale'); -extensions.append('breathe'); - -# Setup the exhale extension -exhale_args = { - # These arguments are required - "containmentFolder": "./api-c", - "rootFileName": "library_root.rst", - "rootFileTitle": "C API", - "doxygenStripFromPath": "..", - # Suggested optional arguments - "createTreeView": True, - # TIP: if using the sphinx-bootstrap-theme, you need - "treeViewIsBootstrap": True, - "exhaleExecutesDoxygen": True, - #"exhaleDoxygenStdin": "INPUT = ../../src" - "exhaleDoxygenStdin": -''' - EXTRACT_ALL = YES - SOURCE_BROWSER = YES - EXTRACT_STATIC = YES - HIDE_SCOPE_NAMES = NO - CALLER_GRAPH = NO - GRAPHICAL_HIERARCHY = NO - HAVE_DOT = YES - QUIET = NO - INPUT = ../../src - GENERATE_TREEVIEW = YES - XML_OUTPUT = xml-c - OPTIMIZE_OUTPUT_FOR_C = YES - - XML_PROGRAMLISTING = YES - RECURSIVE = YES - FULL_PATH_NAMES = YES - ENABLE_PREPROCESSING = YES - MACRO_EXPANSION = YES - SKIP_FUNCTION_MACROS = NO - EXPAND_ONLY_PREDEF = NO - INHERIT_DOCS = YES - INLINE_INHERITED_MEMB = YES - EXTRACT_PRIVATE = YES - FILE_PATTERNS = ../../src/SplinesCinterface.* *.h *.c - GENERATE_HTML = NO -''', - "lexerMapping": { r".*\.m": "MATLAB" } -} diff --git a/docs_build/sphinx_c/index.rst b/docs_build/sphinx_c/index.rst deleted file mode 100644 index 335af28e..00000000 --- a/docs_build/sphinx_c/index.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. Splines documentation master file, created by - sphinx-quickstart on Fri Mar 19 01:43:44 2021. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Splines C interface -=================== - -Splines is a set of C++ classes (with MATLAB mex interface) -which implements various spline interpolation. - -.. toctree:: - :maxdepth: 2 - - api-c/library_root.rst diff --git a/docs_build/sphinx_c/m2cpp.pl b/docs_build/sphinx_c/m2cpp.pl deleted file mode 100755 index 1ebc7f93..00000000 --- a/docs_build/sphinx_c/m2cpp.pl +++ /dev/null @@ -1,262 +0,0 @@ -#!/usr/bin/perl - -if ($#ARGV != 0) -{ - die "Argument must contain filename $#ARGV" -} -else -{ - $fname=$ARGV[0]; -} - -# If we have a .m file inside a (@)-folder with the same name : -# we will read each file of this folder -if ($fname =~ /^(.*)\@([\d\w-_]*)[\/\\](\2)\.m/) -{ - $name = $2; - $nameExt = $name.".m"; - $dir = $1."@".$name."/\*.m"; - @fic = glob($dir); - $i = 0; - @listeFic[0] = $fname; - foreach $my_test (@fic) - { - if (!($my_test =~ $nameExt)) - { - $i++; - @listeFic[$i] = $my_test; - } - } -} -# otherwise @-folder, but .m with a different name : ignore it -elsif ($fname =~ /^(.*)\@([\d\w-_]*)[\/\\](.*)\.m/) -{ -} -# otherwise -else -{ - @listeFic[0] = $fname; -} -$output = ""; -foreach $my_fic (@listeFic) -{ - - open(my $in, $my_fic); - - $declTypeDef=""; - $inClass = 0; - $inAbstractMethodBlock = 0; - $listeProperties = 0; - $listeEnumeration = 0; - - $methodAttribute = ""; - - - while (<$in>) - { - if (/(^\s*)(%>)(.*)/) - { - $output=$output."$1///$3"; - } - if (($listeProperties == 1) && (/(^\s*\bend\b\s*)/)) - { - $listeProperties = 0; - } - if (($inAbstractMethodBlock == 1) && (/(^\s*\bend\b\s*)/)) - { - $inAbstractMethodBlock = 0; - } - if (($listeProperties == 1) && (/^\s*([\w\d]*)\s*(=\s*[\w\d{}'',\s\[\]\.]*)?.*(%>.*)?/)) - { - $propertyName = $1; - $propertyValue = $2; - $propertyComment = $3; - if (!($propertyName =~ /^$/)) - { - if ($typeProperties =~ /Constant/) - { - $properties = $propertyName."$propertyValue;$propertyComment"; - } - else - { - $properties = $propertyName.";$propertyComment"; - } - - $properties =~ s/%>/\/\/\//g; - $properties =~ s/%/\/\//g; - $output=$output.$typeProperties."Property ".$properties; - } - } - if (($listeEnumeration == 1) && (/(^\s*\bend\b\s*)/)) - { - $listeEnumeration = 0; - $output=$output."};"; - } - if (($listeEvents == 1) && (/(^\s*\bend\b\s*)/)) - { - $listeEvents = 0; - $output=$output."};"; - } - if (($listeEvents == 1) && (/^\s*([\w\d]*)\s*/)) - { - $name_event = $1; - if (!($name_event =~ /^$/)) - { - $event = $name_event.","; - $event =~ s/%>/\/\/\//g; - $event =~ s/%/\/\//g; - $output=$output.$event; - } - } - if (($listeEnumeration == 1) && (/^\s*([\w\d]*)\s*(\(.*\))?(%>.*)?/)) - { - $name_enum = $1; - $val_enum = $2; - if (!($name_enum =~ /^$/)) - { - if (!($val_enum =~ /^$/)) - { - $enum = "$name_enum=$val_enum,"; - $enum =~ s/%>/\/\/\//g; - $enum =~ s/%/\/\//g; - $output=$output.$enum; - } - else - { - $enum = "$name_enum,"; - $enum =~ s/%>/\/\/\//g; - $enum =~ s/%/\/\//g; - $output=$output.$enum; - } - } - } - if (/(^\s*function)\s*([\] \w\d,_\[]+=)?\s*([.\w\d_-]*)\s*\(?([\w\d\s,~]*)\)?(%?.*)/) - { - $functionKeyWord = $1; - $functionName = $3; - if ($functionName ne "delete") { - $arguments = $4; - if ($inClass == 0) - { - $output = $declTypeDef.$output; - $declTypeDef = ""; - } - $arguments =~ s/,/,in /g; - $arguments =~ s/~/ignoredArg/g; - $arguments = "in $arguments"; - if ($arguments =~ /^in $/) - { - $arguments = ""; - } - $ligne = "$methodAttribute $functionKeyWord $functionName($arguments);"; - $output=$output.$ligne; - } - } - # Signature of functions in abstract methods - elsif ((/^\s*([\] \w\d,_\[]+=)?\s*([.\w\d_-]+)\s*\(?([\w\d\s,~]*)\)?(%?.*)/) & ($inAbstractMethodBlock == 1) ) - { - $functionName = $2; - if ($functionName ne "delete") { - $arguments = $3; - $arguments =~ s/,/,in /g; - $arguments =~ s/~/ignoredArg/g; - $arguments = "in $arguments"; - if ($arguments =~ /^in $/) - { - $arguments = ""; - } - $ligne = "$methodAttribute $functionKeyWord $functionName($arguments);"; - $output=$output.$ligne; - } - } - # inheritance for classes - if (/(^\s*classdef)\s*(\s*\([\{\}\?\w,=\s]+\s*\))?\s*([\w\d_]+)\s*NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/docs_build/sphinx_cpp/Makefile b/docs_build/sphinx_cpp/Makefile deleted file mode 100644 index d4bb2cbb..00000000 --- a/docs_build/sphinx_cpp/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs_build/sphinx_cpp/conf.py b/docs_build/sphinx_cpp/conf.py deleted file mode 100644 index 9e08f416..00000000 --- a/docs_build/sphinx_cpp/conf.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- coding: utf-8 -*- -import os -from past.builtins import execfile - -# -- Project information ----------------------------------------------------- -execfile('../project_common.py') - -# Setup the breathe extension -breathe_projects = { project+"_cpp": "../xml-cpp" } -breathe_default_project = project+"_cpp" - -extensions.append('exhale'); -extensions.append('breathe'); - -# Setup the exhale extension -exhale_args = { - # These arguments are required - "containmentFolder": "./api-cpp", - "rootFileName": "library_root.rst", - "rootFileTitle": "C++ API", - "doxygenStripFromPath": "..", - # Suggested optional arguments - "createTreeView": True, - # TIP: if using the sphinx-bootstrap-theme, you need - "treeViewIsBootstrap": True, - "exhaleExecutesDoxygen": True, - #"exhaleDoxygenStdin": "INPUT = ../../src" - "exhaleDoxygenStdin": -''' - EXTRACT_ALL = YES - SOURCE_BROWSER = YES - EXTRACT_STATIC = YES - HIDE_SCOPE_NAMES = NO - CALLER_GRAPH = YES - GRAPHICAL_HIERARCHY = YES - HAVE_DOT = YES - QUIET = NO - INPUT = ../../src - GENERATE_TREEVIEW = YES - XML_OUTPUT = xml-cpp - - XML_PROGRAMLISTING = YES - RECURSIVE = YES - FULL_PATH_NAMES = YES - ENABLE_PREPROCESSING = YES - MACRO_EXPANSION = YES - SKIP_FUNCTION_MACROS = NO - EXPAND_ONLY_PREDEF = NO - INHERIT_DOCS = YES - INLINE_INHERITED_MEMB = YES - EXTRACT_PRIVATE = YES - PREDEFINED += protected=private - EXCLUDE_PATTERNS = SplinesCinterface.* - GENERATE_HTML = NO -''', - "lexerMapping": { r".*\.m": "MATLAB" } -} diff --git a/docs_build/sphinx_cpp/index.rst b/docs_build/sphinx_cpp/index.rst deleted file mode 100644 index 8fe1afcd..00000000 --- a/docs_build/sphinx_cpp/index.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. Splines documentation master file, created by - sphinx-quickstart on Fri Mar 19 01:43:44 2021. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Splines C++ interface -===================== - -Splines is a set of C++ classes (with MATLAB mex interface) -which implements various spline interpolation. - -.. toctree:: - :maxdepth: 2 - - api-cpp/library_root.rst diff --git a/docs_build/sphinx_cpp/m2cpp.pl b/docs_build/sphinx_cpp/m2cpp.pl deleted file mode 100755 index 1ebc7f93..00000000 --- a/docs_build/sphinx_cpp/m2cpp.pl +++ /dev/null @@ -1,262 +0,0 @@ -#!/usr/bin/perl - -if ($#ARGV != 0) -{ - die "Argument must contain filename $#ARGV" -} -else -{ - $fname=$ARGV[0]; -} - -# If we have a .m file inside a (@)-folder with the same name : -# we will read each file of this folder -if ($fname =~ /^(.*)\@([\d\w-_]*)[\/\\](\2)\.m/) -{ - $name = $2; - $nameExt = $name.".m"; - $dir = $1."@".$name."/\*.m"; - @fic = glob($dir); - $i = 0; - @listeFic[0] = $fname; - foreach $my_test (@fic) - { - if (!($my_test =~ $nameExt)) - { - $i++; - @listeFic[$i] = $my_test; - } - } -} -# otherwise @-folder, but .m with a different name : ignore it -elsif ($fname =~ /^(.*)\@([\d\w-_]*)[\/\\](.*)\.m/) -{ -} -# otherwise -else -{ - @listeFic[0] = $fname; -} -$output = ""; -foreach $my_fic (@listeFic) -{ - - open(my $in, $my_fic); - - $declTypeDef=""; - $inClass = 0; - $inAbstractMethodBlock = 0; - $listeProperties = 0; - $listeEnumeration = 0; - - $methodAttribute = ""; - - - while (<$in>) - { - if (/(^\s*)(%>)(.*)/) - { - $output=$output."$1///$3"; - } - if (($listeProperties == 1) && (/(^\s*\bend\b\s*)/)) - { - $listeProperties = 0; - } - if (($inAbstractMethodBlock == 1) && (/(^\s*\bend\b\s*)/)) - { - $inAbstractMethodBlock = 0; - } - if (($listeProperties == 1) && (/^\s*([\w\d]*)\s*(=\s*[\w\d{}'',\s\[\]\.]*)?.*(%>.*)?/)) - { - $propertyName = $1; - $propertyValue = $2; - $propertyComment = $3; - if (!($propertyName =~ /^$/)) - { - if ($typeProperties =~ /Constant/) - { - $properties = $propertyName."$propertyValue;$propertyComment"; - } - else - { - $properties = $propertyName.";$propertyComment"; - } - - $properties =~ s/%>/\/\/\//g; - $properties =~ s/%/\/\//g; - $output=$output.$typeProperties."Property ".$properties; - } - } - if (($listeEnumeration == 1) && (/(^\s*\bend\b\s*)/)) - { - $listeEnumeration = 0; - $output=$output."};"; - } - if (($listeEvents == 1) && (/(^\s*\bend\b\s*)/)) - { - $listeEvents = 0; - $output=$output."};"; - } - if (($listeEvents == 1) && (/^\s*([\w\d]*)\s*/)) - { - $name_event = $1; - if (!($name_event =~ /^$/)) - { - $event = $name_event.","; - $event =~ s/%>/\/\/\//g; - $event =~ s/%/\/\//g; - $output=$output.$event; - } - } - if (($listeEnumeration == 1) && (/^\s*([\w\d]*)\s*(\(.*\))?(%>.*)?/)) - { - $name_enum = $1; - $val_enum = $2; - if (!($name_enum =~ /^$/)) - { - if (!($val_enum =~ /^$/)) - { - $enum = "$name_enum=$val_enum,"; - $enum =~ s/%>/\/\/\//g; - $enum =~ s/%/\/\//g; - $output=$output.$enum; - } - else - { - $enum = "$name_enum,"; - $enum =~ s/%>/\/\/\//g; - $enum =~ s/%/\/\//g; - $output=$output.$enum; - } - } - } - if (/(^\s*function)\s*([\] \w\d,_\[]+=)?\s*([.\w\d_-]*)\s*\(?([\w\d\s,~]*)\)?(%?.*)/) - { - $functionKeyWord = $1; - $functionName = $3; - if ($functionName ne "delete") { - $arguments = $4; - if ($inClass == 0) - { - $output = $declTypeDef.$output; - $declTypeDef = ""; - } - $arguments =~ s/,/,in /g; - $arguments =~ s/~/ignoredArg/g; - $arguments = "in $arguments"; - if ($arguments =~ /^in $/) - { - $arguments = ""; - } - $ligne = "$methodAttribute $functionKeyWord $functionName($arguments);"; - $output=$output.$ligne; - } - } - # Signature of functions in abstract methods - elsif ((/^\s*([\] \w\d,_\[]+=)?\s*([.\w\d_-]+)\s*\(?([\w\d\s,~]*)\)?(%?.*)/) & ($inAbstractMethodBlock == 1) ) - { - $functionName = $2; - if ($functionName ne "delete") { - $arguments = $3; - $arguments =~ s/,/,in /g; - $arguments =~ s/~/ignoredArg/g; - $arguments = "in $arguments"; - if ($arguments =~ /^in $/) - { - $arguments = ""; - } - $ligne = "$methodAttribute $functionKeyWord $functionName($arguments);"; - $output=$output.$ligne; - } - } - # inheritance for classes - if (/(^\s*classdef)\s*(\s*\([\{\}\?\w,=\s]+\s*\))?\s*([\w\d_]+)\s*NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/docs_build/sphinx_matlab/Makefile b/docs_build/sphinx_matlab/Makefile deleted file mode 100644 index d4bb2cbb..00000000 --- a/docs_build/sphinx_matlab/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs_build/sphinx_matlab/conf.py b/docs_build/sphinx_matlab/conf.py deleted file mode 100644 index e1644d1f..00000000 --- a/docs_build/sphinx_matlab/conf.py +++ /dev/null @@ -1,68 +0,0 @@ -# -*- coding: utf-8 -*- - -# pip3 install exhale -# pip3 install breathe -# pip3 install m2r2 -# pip3 install sphinxcontrib-email -# pip3 install cloud_sptheme - -import os -from past.builtins import execfile - -# -- Project information ----------------------------------------------------- -execfile('../project_common.py') - -#from project_common import * - -# Setup the breathe extension -breathe_projects = { project+"_matlab": "../xml-matlab" } -breathe_default_project = project+"_matlab" - -extensions.append('exhale'); -extensions.append('breathe'); - -# Setup the exhale extension -exhale_args = { - # These arguments are required - "containmentFolder": "./api-matlab", - "rootFileName": "library_root.rst", - "rootFileTitle": "MATLAB API", - "doxygenStripFromPath": "..", - # Suggested optional arguments - "createTreeView": True, - # TIP: if using the sphinx-bootstrap-theme, you need - "treeViewIsBootstrap": True, - "exhaleExecutesDoxygen": True, - #"exhaleDoxygenStdin": "INPUT = ../../src" - "exhaleDoxygenStdin": -''' - EXTRACT_ALL = YES - SOURCE_BROWSER = YES - EXTRACT_STATIC = YES - HIDE_SCOPE_NAMES = NO - CALLER_GRAPH = YES - GRAPHICAL_HIERARCHY = YES - HAVE_DOT = YES - QUIET = NO - INPUT = ../../toolbox/lib - GENERATE_TREEVIEW = YES - XML_OUTPUT = xml-matlab - - XML_PROGRAMLISTING = YES - RECURSIVE = YES - FULL_PATH_NAMES = YES - ENABLE_PREPROCESSING = YES - MACRO_EXPANSION = YES - SKIP_FUNCTION_MACROS = NO - EXPAND_ONLY_PREDEF = NO - INHERIT_DOCS = YES - INLINE_INHERITED_MEMB = YES - EXTRACT_PRIVATE = YES - PREDEFINED += protected=private - EXTENSION_MAPPING = .m=C++ - FILE_PATTERNS = *.m - FILTER_PATTERNS = *.m=./m2cpp.pl - GENERATE_HTML = NO -''', - "lexerMapping": { r".*\.m": "MATLAB" } -} diff --git a/docs_build/sphinx_matlab/index.rst b/docs_build/sphinx_matlab/index.rst deleted file mode 100644 index 0568dee0..00000000 --- a/docs_build/sphinx_matlab/index.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. Splines documentation master file, created by - sphinx-quickstart on Fri Mar 19 01:43:44 2021. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Splines MATLAB interface -======================== - -Splines is a set of C++ classes (with MATLAB mex interface) -which implements various spline interpolation. - -.. toctree:: - :maxdepth: 2 - - api-matlab/library_root.rst diff --git a/docs_build/sphinx_matlab/m2cpp.pl b/docs_build/sphinx_matlab/m2cpp.pl deleted file mode 100755 index 1ebc7f93..00000000 --- a/docs_build/sphinx_matlab/m2cpp.pl +++ /dev/null @@ -1,262 +0,0 @@ -#!/usr/bin/perl - -if ($#ARGV != 0) -{ - die "Argument must contain filename $#ARGV" -} -else -{ - $fname=$ARGV[0]; -} - -# If we have a .m file inside a (@)-folder with the same name : -# we will read each file of this folder -if ($fname =~ /^(.*)\@([\d\w-_]*)[\/\\](\2)\.m/) -{ - $name = $2; - $nameExt = $name.".m"; - $dir = $1."@".$name."/\*.m"; - @fic = glob($dir); - $i = 0; - @listeFic[0] = $fname; - foreach $my_test (@fic) - { - if (!($my_test =~ $nameExt)) - { - $i++; - @listeFic[$i] = $my_test; - } - } -} -# otherwise @-folder, but .m with a different name : ignore it -elsif ($fname =~ /^(.*)\@([\d\w-_]*)[\/\\](.*)\.m/) -{ -} -# otherwise -else -{ - @listeFic[0] = $fname; -} -$output = ""; -foreach $my_fic (@listeFic) -{ - - open(my $in, $my_fic); - - $declTypeDef=""; - $inClass = 0; - $inAbstractMethodBlock = 0; - $listeProperties = 0; - $listeEnumeration = 0; - - $methodAttribute = ""; - - - while (<$in>) - { - if (/(^\s*)(%>)(.*)/) - { - $output=$output."$1///$3"; - } - if (($listeProperties == 1) && (/(^\s*\bend\b\s*)/)) - { - $listeProperties = 0; - } - if (($inAbstractMethodBlock == 1) && (/(^\s*\bend\b\s*)/)) - { - $inAbstractMethodBlock = 0; - } - if (($listeProperties == 1) && (/^\s*([\w\d]*)\s*(=\s*[\w\d{}'',\s\[\]\.]*)?.*(%>.*)?/)) - { - $propertyName = $1; - $propertyValue = $2; - $propertyComment = $3; - if (!($propertyName =~ /^$/)) - { - if ($typeProperties =~ /Constant/) - { - $properties = $propertyName."$propertyValue;$propertyComment"; - } - else - { - $properties = $propertyName.";$propertyComment"; - } - - $properties =~ s/%>/\/\/\//g; - $properties =~ s/%/\/\//g; - $output=$output.$typeProperties."Property ".$properties; - } - } - if (($listeEnumeration == 1) && (/(^\s*\bend\b\s*)/)) - { - $listeEnumeration = 0; - $output=$output."};"; - } - if (($listeEvents == 1) && (/(^\s*\bend\b\s*)/)) - { - $listeEvents = 0; - $output=$output."};"; - } - if (($listeEvents == 1) && (/^\s*([\w\d]*)\s*/)) - { - $name_event = $1; - if (!($name_event =~ /^$/)) - { - $event = $name_event.","; - $event =~ s/%>/\/\/\//g; - $event =~ s/%/\/\//g; - $output=$output.$event; - } - } - if (($listeEnumeration == 1) && (/^\s*([\w\d]*)\s*(\(.*\))?(%>.*)?/)) - { - $name_enum = $1; - $val_enum = $2; - if (!($name_enum =~ /^$/)) - { - if (!($val_enum =~ /^$/)) - { - $enum = "$name_enum=$val_enum,"; - $enum =~ s/%>/\/\/\//g; - $enum =~ s/%/\/\//g; - $output=$output.$enum; - } - else - { - $enum = "$name_enum,"; - $enum =~ s/%>/\/\/\//g; - $enum =~ s/%/\/\//g; - $output=$output.$enum; - } - } - } - if (/(^\s*function)\s*([\] \w\d,_\[]+=)?\s*([.\w\d_-]*)\s*\(?([\w\d\s,~]*)\)?(%?.*)/) - { - $functionKeyWord = $1; - $functionName = $3; - if ($functionName ne "delete") { - $arguments = $4; - if ($inClass == 0) - { - $output = $declTypeDef.$output; - $declTypeDef = ""; - } - $arguments =~ s/,/,in /g; - $arguments =~ s/~/ignoredArg/g; - $arguments = "in $arguments"; - if ($arguments =~ /^in $/) - { - $arguments = ""; - } - $ligne = "$methodAttribute $functionKeyWord $functionName($arguments);"; - $output=$output.$ligne; - } - } - # Signature of functions in abstract methods - elsif ((/^\s*([\] \w\d,_\[]+=)?\s*([.\w\d_-]+)\s*\(?([\w\d\s,~]*)\)?(%?.*)/) & ($inAbstractMethodBlock == 1) ) - { - $functionName = $2; - if ($functionName ne "delete") { - $arguments = $3; - $arguments =~ s/,/,in /g; - $arguments =~ s/~/ignoredArg/g; - $arguments = "in $arguments"; - if ($arguments =~ /^in $/) - { - $arguments = ""; - } - $ligne = "$methodAttribute $functionKeyWord $functionName($arguments);"; - $output=$output.$ligne; - } - } - # inheritance for classes - if (/(^\s*classdef)\s*(\s*\([\{\}\?\w,=\s]+\s*\))?\s*([\w\d_]+)\s*NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/docs_build/xml_merge.rb b/docs_build/xml_merge.rb deleted file mode 100644 index 416b26af..00000000 --- a/docs_build/xml_merge.rb +++ /dev/null @@ -1,16 +0,0 @@ -require 'fileutils' - -FileUtils.rm_rf "./xml" -FileUtils.mkdir "./xml" -puts "Start" -Dir.glob("./xml-*/*").each do |from| - puts "Copy: #{from}" - to = "./xml/#{File.basename(from)}" - if File.exists?(to) then - system("xml-cat #{from} #{to} > tmp"); - FileUtils.mv "tmp", to - else - FileUtils.cp from, to - end -end -puts "Done" diff --git a/makefile b/makefile index c6c1349a..45b95ccc 100755 --- a/makefile +++ b/makefile @@ -136,7 +136,6 @@ depend: src/SplineAkima.o: src/Splines.hh src/SplinesConfig.hh src/SplineAkima.o: submodules/Utils/src/Utils.hh src/SplineAkima.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineAkima.o: submodules/Utils/src/Utils/rang.hpp src/SplineAkima.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineAkima.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineAkima.o: submodules/Utils/src/Utils/fmt/format.h @@ -151,6 +150,7 @@ src/SplineAkima.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineAkima.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineAkima.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineAkima.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineAkima.o: submodules/Utils/src/Utils/rang.hxx src/SplineAkima.o: submodules/Utils/src/Utils/Trace.hxx src/SplineAkima.o: submodules/Utils/src/Utils/Console.hxx src/SplineAkima.o: submodules/Utils/src/Utils/Malloc.hxx @@ -159,10 +159,17 @@ src/SplineAkima.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineAkima.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineAkima.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineAkima.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineAkima.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineAkima.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineAkima.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineAkima.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineAkima.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineAkima.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineAkima.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineAkima.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineAkima2D.o: src/Splines.hh src/SplinesConfig.hh src/SplineAkima2D.o: submodules/Utils/src/Utils.hh src/SplineAkima2D.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineAkima2D.o: submodules/Utils/src/Utils/rang.hpp src/SplineAkima2D.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineAkima2D.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineAkima2D.o: submodules/Utils/src/Utils/fmt/format.h @@ -177,6 +184,7 @@ src/SplineAkima2D.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineAkima2D.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineAkima2D.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineAkima2D.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineAkima2D.o: submodules/Utils/src/Utils/rang.hxx src/SplineAkima2D.o: submodules/Utils/src/Utils/Trace.hxx src/SplineAkima2D.o: submodules/Utils/src/Utils/Console.hxx src/SplineAkima2D.o: submodules/Utils/src/Utils/Malloc.hxx @@ -185,10 +193,17 @@ src/SplineAkima2D.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineAkima2D.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineAkima2D.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineAkima2D.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineAkima2D.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineAkima2D.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineAkima2D.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineAkima2D.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineAkima2D.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineAkima2D.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineAkima2D.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineAkima2D.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineBessel.o: src/Splines.hh src/SplinesConfig.hh src/SplineBessel.o: submodules/Utils/src/Utils.hh src/SplineBessel.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineBessel.o: submodules/Utils/src/Utils/rang.hpp src/SplineBessel.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineBessel.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineBessel.o: submodules/Utils/src/Utils/fmt/format.h @@ -203,6 +218,7 @@ src/SplineBessel.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineBessel.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineBessel.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineBessel.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineBessel.o: submodules/Utils/src/Utils/rang.hxx src/SplineBessel.o: submodules/Utils/src/Utils/Trace.hxx src/SplineBessel.o: submodules/Utils/src/Utils/Console.hxx src/SplineBessel.o: submodules/Utils/src/Utils/Malloc.hxx @@ -211,10 +227,17 @@ src/SplineBessel.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineBessel.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineBessel.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineBessel.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineBessel.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineBessel.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineBessel.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineBessel.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineBessel.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineBessel.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineBessel.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineBessel.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineBiCubic.o: src/Splines.hh src/SplinesConfig.hh src/SplineBiCubic.o: submodules/Utils/src/Utils.hh src/SplineBiCubic.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineBiCubic.o: submodules/Utils/src/Utils/rang.hpp src/SplineBiCubic.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineBiCubic.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineBiCubic.o: submodules/Utils/src/Utils/fmt/format.h @@ -229,6 +252,7 @@ src/SplineBiCubic.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineBiCubic.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineBiCubic.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineBiCubic.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineBiCubic.o: submodules/Utils/src/Utils/rang.hxx src/SplineBiCubic.o: submodules/Utils/src/Utils/Trace.hxx src/SplineBiCubic.o: submodules/Utils/src/Utils/Console.hxx src/SplineBiCubic.o: submodules/Utils/src/Utils/Malloc.hxx @@ -237,10 +261,17 @@ src/SplineBiCubic.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineBiCubic.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineBiCubic.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineBiCubic.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineBiCubic.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineBiCubic.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineBiCubic.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineBiCubic.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineBiCubic.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineBiCubic.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineBiCubic.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineBiCubic.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineBiQuintic.o: src/Splines.hh src/SplinesConfig.hh src/SplineBiQuintic.o: submodules/Utils/src/Utils.hh src/SplineBiQuintic.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineBiQuintic.o: submodules/Utils/src/Utils/rang.hpp src/SplineBiQuintic.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineBiQuintic.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineBiQuintic.o: submodules/Utils/src/Utils/fmt/format.h @@ -255,6 +286,7 @@ src/SplineBiQuintic.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineBiQuintic.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineBiQuintic.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineBiQuintic.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineBiQuintic.o: submodules/Utils/src/Utils/rang.hxx src/SplineBiQuintic.o: submodules/Utils/src/Utils/Trace.hxx src/SplineBiQuintic.o: submodules/Utils/src/Utils/Console.hxx src/SplineBiQuintic.o: submodules/Utils/src/Utils/Malloc.hxx @@ -263,10 +295,17 @@ src/SplineBiQuintic.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineBiQuintic.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineBiQuintic.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineBiQuintic.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineBiQuintic.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineBiQuintic.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineBiQuintic.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineBiQuintic.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineBiQuintic.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineBiQuintic.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineBiQuintic.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineBiQuintic.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineBilinear.o: src/Splines.hh src/SplinesConfig.hh src/SplineBilinear.o: submodules/Utils/src/Utils.hh src/SplineBilinear.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineBilinear.o: submodules/Utils/src/Utils/rang.hpp src/SplineBilinear.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineBilinear.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineBilinear.o: submodules/Utils/src/Utils/fmt/format.h @@ -281,6 +320,7 @@ src/SplineBilinear.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineBilinear.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineBilinear.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineBilinear.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineBilinear.o: submodules/Utils/src/Utils/rang.hxx src/SplineBilinear.o: submodules/Utils/src/Utils/Trace.hxx src/SplineBilinear.o: submodules/Utils/src/Utils/Console.hxx src/SplineBilinear.o: submodules/Utils/src/Utils/Malloc.hxx @@ -289,10 +329,17 @@ src/SplineBilinear.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineBilinear.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineBilinear.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineBilinear.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineBilinear.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineBilinear.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineBilinear.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineBilinear.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineBilinear.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineBilinear.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineBilinear.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineBilinear.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineConstant.o: src/Splines.hh src/SplinesConfig.hh src/SplineConstant.o: submodules/Utils/src/Utils.hh src/SplineConstant.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineConstant.o: submodules/Utils/src/Utils/rang.hpp src/SplineConstant.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineConstant.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineConstant.o: submodules/Utils/src/Utils/fmt/format.h @@ -307,6 +354,7 @@ src/SplineConstant.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineConstant.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineConstant.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineConstant.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineConstant.o: submodules/Utils/src/Utils/rang.hxx src/SplineConstant.o: submodules/Utils/src/Utils/Trace.hxx src/SplineConstant.o: submodules/Utils/src/Utils/Console.hxx src/SplineConstant.o: submodules/Utils/src/Utils/Malloc.hxx @@ -315,10 +363,17 @@ src/SplineConstant.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineConstant.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineConstant.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineConstant.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineConstant.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineConstant.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineConstant.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineConstant.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineConstant.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineConstant.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineConstant.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineConstant.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineCubic.o: src/Splines.hh src/SplinesConfig.hh src/SplineCubic.o: submodules/Utils/src/Utils.hh src/SplineCubic.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineCubic.o: submodules/Utils/src/Utils/rang.hpp src/SplineCubic.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineCubic.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineCubic.o: submodules/Utils/src/Utils/fmt/format.h @@ -333,6 +388,7 @@ src/SplineCubic.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineCubic.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineCubic.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineCubic.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineCubic.o: submodules/Utils/src/Utils/rang.hxx src/SplineCubic.o: submodules/Utils/src/Utils/Trace.hxx src/SplineCubic.o: submodules/Utils/src/Utils/Console.hxx src/SplineCubic.o: submodules/Utils/src/Utils/Malloc.hxx @@ -341,10 +397,17 @@ src/SplineCubic.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineCubic.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineCubic.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineCubic.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineCubic.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineCubic.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineCubic.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineCubic.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineCubic.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineCubic.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineCubic.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineCubic.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineCubicBase.o: src/Splines.hh src/SplinesConfig.hh src/SplineCubicBase.o: submodules/Utils/src/Utils.hh src/SplineCubicBase.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineCubicBase.o: submodules/Utils/src/Utils/rang.hpp src/SplineCubicBase.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineCubicBase.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineCubicBase.o: submodules/Utils/src/Utils/fmt/format.h @@ -359,6 +422,7 @@ src/SplineCubicBase.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineCubicBase.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineCubicBase.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineCubicBase.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineCubicBase.o: submodules/Utils/src/Utils/rang.hxx src/SplineCubicBase.o: submodules/Utils/src/Utils/Trace.hxx src/SplineCubicBase.o: submodules/Utils/src/Utils/Console.hxx src/SplineCubicBase.o: submodules/Utils/src/Utils/Malloc.hxx @@ -367,10 +431,18 @@ src/SplineCubicBase.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineCubicBase.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineCubicBase.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineCubicBase.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineCubicBase.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineCubicBase.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineCubicBase.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineCubicBase.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineCubicBase.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineCubicBase.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineCubicBase.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineCubicBase.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx +src/SplineCubicBase.o: submodules/quarticRootsFlocke/src/PolynomialRoots.hh src/SplineHermite.o: src/Splines.hh src/SplinesConfig.hh src/SplineHermite.o: submodules/Utils/src/Utils.hh src/SplineHermite.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineHermite.o: submodules/Utils/src/Utils/rang.hpp src/SplineHermite.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineHermite.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineHermite.o: submodules/Utils/src/Utils/fmt/format.h @@ -385,6 +457,7 @@ src/SplineHermite.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineHermite.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineHermite.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineHermite.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineHermite.o: submodules/Utils/src/Utils/rang.hxx src/SplineHermite.o: submodules/Utils/src/Utils/Trace.hxx src/SplineHermite.o: submodules/Utils/src/Utils/Console.hxx src/SplineHermite.o: submodules/Utils/src/Utils/Malloc.hxx @@ -393,10 +466,17 @@ src/SplineHermite.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineHermite.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineHermite.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineHermite.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineHermite.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineHermite.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineHermite.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineHermite.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineHermite.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineHermite.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineHermite.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineHermite.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineLinear.o: src/Splines.hh src/SplinesConfig.hh src/SplineLinear.o: submodules/Utils/src/Utils.hh src/SplineLinear.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineLinear.o: submodules/Utils/src/Utils/rang.hpp src/SplineLinear.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineLinear.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineLinear.o: submodules/Utils/src/Utils/fmt/format.h @@ -411,6 +491,7 @@ src/SplineLinear.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineLinear.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineLinear.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineLinear.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineLinear.o: submodules/Utils/src/Utils/rang.hxx src/SplineLinear.o: submodules/Utils/src/Utils/Trace.hxx src/SplineLinear.o: submodules/Utils/src/Utils/Console.hxx src/SplineLinear.o: submodules/Utils/src/Utils/Malloc.hxx @@ -419,10 +500,17 @@ src/SplineLinear.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineLinear.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineLinear.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineLinear.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineLinear.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineLinear.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineLinear.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineLinear.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineLinear.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineLinear.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineLinear.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineLinear.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplinePchip.o: src/Splines.hh src/SplinesConfig.hh src/SplinePchip.o: submodules/Utils/src/Utils.hh src/SplinePchip.o: submodules/Utils/src/Utils/Utils.hxx -src/SplinePchip.o: submodules/Utils/src/Utils/rang.hpp src/SplinePchip.o: submodules/Utils/src/Utils/fmt/printf.h src/SplinePchip.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplinePchip.o: submodules/Utils/src/Utils/fmt/format.h @@ -437,6 +525,7 @@ src/SplinePchip.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplinePchip.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplinePchip.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplinePchip.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplinePchip.o: submodules/Utils/src/Utils/rang.hxx src/SplinePchip.o: submodules/Utils/src/Utils/Trace.hxx src/SplinePchip.o: submodules/Utils/src/Utils/Console.hxx src/SplinePchip.o: submodules/Utils/src/Utils/Malloc.hxx @@ -445,11 +534,18 @@ src/SplinePchip.o: submodules/Utils/src/Utils/TicToc.hxx src/SplinePchip.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplinePchip.o: submodules/GenericContainer/src/GenericContainer.hh src/SplinePchip.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplinePchip.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplinePchip.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplinePchip.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplinePchip.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplinePchip.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplinePchip.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplinePchip.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplinePchip.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplinePchip.o: src/SplinesUtils.hh src/SplineQuintic.o: src/Splines.hh src/SplinesConfig.hh src/SplineQuintic.o: submodules/Utils/src/Utils.hh src/SplineQuintic.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineQuintic.o: submodules/Utils/src/Utils/rang.hpp src/SplineQuintic.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineQuintic.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineQuintic.o: submodules/Utils/src/Utils/fmt/format.h @@ -464,6 +560,7 @@ src/SplineQuintic.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineQuintic.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineQuintic.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineQuintic.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineQuintic.o: submodules/Utils/src/Utils/rang.hxx src/SplineQuintic.o: submodules/Utils/src/Utils/Trace.hxx src/SplineQuintic.o: submodules/Utils/src/Utils/Console.hxx src/SplineQuintic.o: submodules/Utils/src/Utils/Malloc.hxx @@ -472,11 +569,18 @@ src/SplineQuintic.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineQuintic.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineQuintic.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineQuintic.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineQuintic.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineQuintic.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineQuintic.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineQuintic.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineQuintic.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineQuintic.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineQuintic.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineQuintic.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineQuintic.o: src/SplinesUtils.hh src/SplineQuinticBase.o: src/Splines.hh src/SplinesConfig.hh src/SplineQuinticBase.o: submodules/Utils/src/Utils.hh src/SplineQuinticBase.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineQuinticBase.o: submodules/Utils/src/Utils/rang.hpp src/SplineQuinticBase.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineQuinticBase.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineQuinticBase.o: submodules/Utils/src/Utils/fmt/format.h @@ -491,6 +595,7 @@ src/SplineQuinticBase.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineQuinticBase.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineQuinticBase.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineQuinticBase.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineQuinticBase.o: submodules/Utils/src/Utils/rang.hxx src/SplineQuinticBase.o: submodules/Utils/src/Utils/Trace.hxx src/SplineQuinticBase.o: submodules/Utils/src/Utils/Console.hxx src/SplineQuinticBase.o: submodules/Utils/src/Utils/Malloc.hxx @@ -499,10 +604,19 @@ src/SplineQuinticBase.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineQuinticBase.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineQuinticBase.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineQuinticBase.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineQuinticBase.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineQuinticBase.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineQuinticBase.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineQuinticBase.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineQuinticBase.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineQuinticBase.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineQuinticBase.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineQuinticBase.o: src/SplineSet.hxx src/Splines1D.hxx +src/SplineQuinticBase.o: src/Splines2D.hxx +src/SplineQuinticBase.o: submodules/quarticRootsFlocke/src/PolynomialRoots.hh src/SplineSet.o: src/Splines.hh src/SplinesConfig.hh src/SplineSet.o: submodules/Utils/src/Utils.hh src/SplineSet.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineSet.o: submodules/Utils/src/Utils/rang.hpp src/SplineSet.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineSet.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineSet.o: submodules/Utils/src/Utils/fmt/format.h @@ -517,6 +631,7 @@ src/SplineSet.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineSet.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineSet.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineSet.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineSet.o: submodules/Utils/src/Utils/rang.hxx src/SplineSet.o: submodules/Utils/src/Utils/Trace.hxx src/SplineSet.o: submodules/Utils/src/Utils/Console.hxx src/SplineSet.o: submodules/Utils/src/Utils/Malloc.hxx @@ -525,12 +640,18 @@ src/SplineSet.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineSet.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineSet.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineSet.o: submodules/GenericContainer/src/GenericContainerConfig.hh -src/SplineSet.o: src/SplinesUtils.hh +src/SplineSet.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineSet.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineSet.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineSet.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineSet.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineSet.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineSet.o: src/SplineBiQuintic.hxx src/SplineVec.hxx src/SplineSet.hxx +src/SplineSet.o: src/Splines1D.hxx src/Splines2D.hxx src/SplinesUtils.hh src/SplineSet.o: submodules/quarticRootsFlocke/src/PolynomialRoots.hh src/SplineSetGC.o: src/Splines.hh src/SplinesConfig.hh src/SplineSetGC.o: submodules/Utils/src/Utils.hh src/SplineSetGC.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineSetGC.o: submodules/Utils/src/Utils/rang.hpp src/SplineSetGC.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineSetGC.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineSetGC.o: submodules/Utils/src/Utils/fmt/format.h @@ -545,6 +666,7 @@ src/SplineSetGC.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineSetGC.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineSetGC.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineSetGC.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineSetGC.o: submodules/Utils/src/Utils/rang.hxx src/SplineSetGC.o: submodules/Utils/src/Utils/Trace.hxx src/SplineSetGC.o: submodules/Utils/src/Utils/Console.hxx src/SplineSetGC.o: submodules/Utils/src/Utils/Malloc.hxx @@ -553,10 +675,17 @@ src/SplineSetGC.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineSetGC.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineSetGC.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineSetGC.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineSetGC.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineSetGC.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineSetGC.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineSetGC.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineSetGC.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineSetGC.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineSetGC.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplineSetGC.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplineVec.o: src/Splines.hh src/SplinesConfig.hh src/SplineVec.o: submodules/Utils/src/Utils.hh src/SplineVec.o: submodules/Utils/src/Utils/Utils.hxx -src/SplineVec.o: submodules/Utils/src/Utils/rang.hpp src/SplineVec.o: submodules/Utils/src/Utils/fmt/printf.h src/SplineVec.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplineVec.o: submodules/Utils/src/Utils/fmt/format.h @@ -571,6 +700,7 @@ src/SplineVec.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplineVec.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplineVec.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplineVec.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplineVec.o: submodules/Utils/src/Utils/rang.hxx src/SplineVec.o: submodules/Utils/src/Utils/Trace.hxx src/SplineVec.o: submodules/Utils/src/Utils/Console.hxx src/SplineVec.o: submodules/Utils/src/Utils/Malloc.hxx @@ -579,10 +709,17 @@ src/SplineVec.o: submodules/Utils/src/Utils/TicToc.hxx src/SplineVec.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplineVec.o: submodules/GenericContainer/src/GenericContainer.hh src/SplineVec.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplineVec.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplineVec.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplineVec.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplineVec.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplineVec.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplineVec.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplineVec.o: src/SplineBiQuintic.hxx src/SplineVec.hxx src/SplineSet.hxx +src/SplineVec.o: src/Splines1D.hxx src/Splines2D.hxx src/Splines.o: src/SplinesUtils.hh src/Splines.hh src/SplinesConfig.hh src/Splines.o: submodules/Utils/src/Utils.hh src/Splines.o: submodules/Utils/src/Utils/Utils.hxx -src/Splines.o: submodules/Utils/src/Utils/rang.hpp src/Splines.o: submodules/Utils/src/Utils/fmt/printf.h src/Splines.o: submodules/Utils/src/Utils/fmt/ostream.h src/Splines.o: submodules/Utils/src/Utils/fmt/format.h @@ -597,6 +734,7 @@ src/Splines.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/Splines.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/Splines.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/Splines.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/Splines.o: submodules/Utils/src/Utils/rang.hxx src/Splines.o: submodules/Utils/src/Utils/Trace.hxx src/Splines.o: submodules/Utils/src/Utils/Console.hxx src/Splines.o: submodules/Utils/src/Utils/Malloc.hxx @@ -605,10 +743,17 @@ src/Splines.o: submodules/Utils/src/Utils/TicToc.hxx src/Splines.o: submodules/Utils/src/Utils/ThreadPool.hxx src/Splines.o: submodules/GenericContainer/src/GenericContainer.hh src/Splines.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/Splines.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/Splines.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/Splines.o: src/SplineCubic.hxx src/SplineHermite.hxx src/SplinePchip.hxx +src/Splines.o: src/SplineQuinticBase.hxx src/SplineQuintic.hxx +src/Splines.o: src/SplineBilinear.hxx src/SplineBiCubic.hxx +src/Splines.o: src/SplineAkima2D.hxx src/SplineBiQuintic.hxx +src/Splines.o: src/SplineVec.hxx src/SplineSet.hxx src/Splines1D.hxx +src/Splines.o: src/Splines2D.hxx src/Splines1D.o: src/Splines.hh src/SplinesConfig.hh src/Splines1D.o: submodules/Utils/src/Utils.hh src/Splines1D.o: submodules/Utils/src/Utils/Utils.hxx -src/Splines1D.o: submodules/Utils/src/Utils/rang.hpp src/Splines1D.o: submodules/Utils/src/Utils/fmt/printf.h src/Splines1D.o: submodules/Utils/src/Utils/fmt/ostream.h src/Splines1D.o: submodules/Utils/src/Utils/fmt/format.h @@ -623,6 +768,7 @@ src/Splines1D.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/Splines1D.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/Splines1D.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/Splines1D.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/Splines1D.o: submodules/Utils/src/Utils/rang.hxx src/Splines1D.o: submodules/Utils/src/Utils/Trace.hxx src/Splines1D.o: submodules/Utils/src/Utils/Console.hxx src/Splines1D.o: submodules/Utils/src/Utils/Malloc.hxx @@ -631,10 +777,17 @@ src/Splines1D.o: submodules/Utils/src/Utils/TicToc.hxx src/Splines1D.o: submodules/Utils/src/Utils/ThreadPool.hxx src/Splines1D.o: submodules/GenericContainer/src/GenericContainer.hh src/Splines1D.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/Splines1D.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/Splines1D.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/Splines1D.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/Splines1D.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/Splines1D.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/Splines1D.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/Splines1D.o: src/SplineBiQuintic.hxx src/SplineVec.hxx src/SplineSet.hxx +src/Splines1D.o: src/Splines1D.hxx src/Splines2D.hxx src/Splines2D.o: src/Splines.hh src/SplinesConfig.hh src/Splines2D.o: submodules/Utils/src/Utils.hh src/Splines2D.o: submodules/Utils/src/Utils/Utils.hxx -src/Splines2D.o: submodules/Utils/src/Utils/rang.hpp src/Splines2D.o: submodules/Utils/src/Utils/fmt/printf.h src/Splines2D.o: submodules/Utils/src/Utils/fmt/ostream.h src/Splines2D.o: submodules/Utils/src/Utils/fmt/format.h @@ -649,6 +802,7 @@ src/Splines2D.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/Splines2D.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/Splines2D.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/Splines2D.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/Splines2D.o: submodules/Utils/src/Utils/rang.hxx src/Splines2D.o: submodules/Utils/src/Utils/Trace.hxx src/Splines2D.o: submodules/Utils/src/Utils/Console.hxx src/Splines2D.o: submodules/Utils/src/Utils/Malloc.hxx @@ -657,10 +811,17 @@ src/Splines2D.o: submodules/Utils/src/Utils/TicToc.hxx src/Splines2D.o: submodules/Utils/src/Utils/ThreadPool.hxx src/Splines2D.o: submodules/GenericContainer/src/GenericContainer.hh src/Splines2D.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/Splines2D.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/Splines2D.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/Splines2D.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/Splines2D.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/Splines2D.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/Splines2D.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/Splines2D.o: src/SplineBiQuintic.hxx src/SplineVec.hxx src/SplineSet.hxx +src/Splines2D.o: src/Splines1D.hxx src/Splines2D.hxx src/SplinesBivariate.o: src/Splines.hh src/SplinesConfig.hh src/SplinesBivariate.o: submodules/Utils/src/Utils.hh src/SplinesBivariate.o: submodules/Utils/src/Utils/Utils.hxx -src/SplinesBivariate.o: submodules/Utils/src/Utils/rang.hpp src/SplinesBivariate.o: submodules/Utils/src/Utils/fmt/printf.h src/SplinesBivariate.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplinesBivariate.o: submodules/Utils/src/Utils/fmt/format.h @@ -675,6 +836,7 @@ src/SplinesBivariate.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplinesBivariate.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplinesBivariate.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplinesBivariate.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplinesBivariate.o: submodules/Utils/src/Utils/rang.hxx src/SplinesBivariate.o: submodules/Utils/src/Utils/Trace.hxx src/SplinesBivariate.o: submodules/Utils/src/Utils/Console.hxx src/SplinesBivariate.o: submodules/Utils/src/Utils/Malloc.hxx @@ -683,10 +845,17 @@ src/SplinesBivariate.o: submodules/Utils/src/Utils/TicToc.hxx src/SplinesBivariate.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplinesBivariate.o: submodules/GenericContainer/src/GenericContainer.hh src/SplinesBivariate.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplinesBivariate.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplinesBivariate.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplinesBivariate.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplinesBivariate.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplinesBivariate.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplinesBivariate.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplinesBivariate.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplinesBivariate.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx src/SplinesCinterface.o: src/Splines.hh src/SplinesConfig.hh src/SplinesCinterface.o: submodules/Utils/src/Utils.hh src/SplinesCinterface.o: submodules/Utils/src/Utils/Utils.hxx -src/SplinesCinterface.o: submodules/Utils/src/Utils/rang.hpp src/SplinesCinterface.o: submodules/Utils/src/Utils/fmt/printf.h src/SplinesCinterface.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplinesCinterface.o: submodules/Utils/src/Utils/fmt/format.h @@ -701,6 +870,7 @@ src/SplinesCinterface.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplinesCinterface.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplinesCinterface.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplinesCinterface.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplinesCinterface.o: submodules/Utils/src/Utils/rang.hxx src/SplinesCinterface.o: submodules/Utils/src/Utils/Trace.hxx src/SplinesCinterface.o: submodules/Utils/src/Utils/Console.hxx src/SplinesCinterface.o: submodules/Utils/src/Utils/Malloc.hxx @@ -709,11 +879,18 @@ src/SplinesCinterface.o: submodules/Utils/src/Utils/TicToc.hxx src/SplinesCinterface.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplinesCinterface.o: submodules/GenericContainer/src/GenericContainer.hh src/SplinesCinterface.o: submodules/GenericContainer/src/GenericContainerConfig.hh -src/SplinesCinterface.o: src/SplinesCinterface.h +src/SplinesCinterface.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplinesCinterface.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplinesCinterface.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplinesCinterface.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplinesCinterface.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplinesCinterface.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplinesCinterface.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplinesCinterface.o: src/SplineSet.hxx src/Splines1D.hxx +src/SplinesCinterface.o: src/Splines2D.hxx src/SplinesCinterface.h src/SplinesUtils.o: src/SplinesUtils.hh src/Splines.hh src/SplinesConfig.hh src/SplinesUtils.o: submodules/Utils/src/Utils.hh src/SplinesUtils.o: submodules/Utils/src/Utils/Utils.hxx -src/SplinesUtils.o: submodules/Utils/src/Utils/rang.hpp src/SplinesUtils.o: submodules/Utils/src/Utils/fmt/printf.h src/SplinesUtils.o: submodules/Utils/src/Utils/fmt/ostream.h src/SplinesUtils.o: submodules/Utils/src/Utils/fmt/format.h @@ -728,6 +905,7 @@ src/SplinesUtils.o: submodules/Utils/src/Utils/zstream/izstream.hpp src/SplinesUtils.o: submodules/Utils/src/Utils/zstream/ozstream.hpp src/SplinesUtils.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp src/SplinesUtils.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +src/SplinesUtils.o: submodules/Utils/src/Utils/rang.hxx src/SplinesUtils.o: submodules/Utils/src/Utils/Trace.hxx src/SplinesUtils.o: submodules/Utils/src/Utils/Console.hxx src/SplinesUtils.o: submodules/Utils/src/Utils/Malloc.hxx @@ -736,9 +914,16 @@ src/SplinesUtils.o: submodules/Utils/src/Utils/TicToc.hxx src/SplinesUtils.o: submodules/Utils/src/Utils/ThreadPool.hxx src/SplinesUtils.o: submodules/GenericContainer/src/GenericContainer.hh src/SplinesUtils.o: submodules/GenericContainer/src/GenericContainerConfig.hh +src/SplinesUtils.o: src/SplineAkima.hxx src/SplineBessel.hxx +src/SplinesUtils.o: src/SplineConstant.hxx src/SplineLinear.hxx +src/SplinesUtils.o: src/SplineCubic.hxx src/SplineHermite.hxx +src/SplinesUtils.o: src/SplinePchip.hxx src/SplineQuinticBase.hxx +src/SplinesUtils.o: src/SplineQuintic.hxx src/SplineBilinear.hxx +src/SplinesUtils.o: src/SplineBiCubic.hxx src/SplineAkima2D.hxx +src/SplinesUtils.o: src/SplineBiQuintic.hxx src/SplineVec.hxx +src/SplinesUtils.o: src/SplineSet.hxx src/Splines1D.hxx src/Splines2D.hxx submodules/Utils/src/Console.o: submodules/Utils/src/Utils.hh submodules/Utils/src/Console.o: submodules/Utils/src/Utils/Utils.hxx -submodules/Utils/src/Console.o: submodules/Utils/src/Utils/rang.hpp submodules/Utils/src/Console.o: submodules/Utils/src/Utils/fmt/printf.h submodules/Utils/src/Console.o: submodules/Utils/src/Utils/fmt/ostream.h submodules/Utils/src/Console.o: submodules/Utils/src/Utils/fmt/format.h @@ -753,6 +938,7 @@ submodules/Utils/src/Console.o: submodules/Utils/src/Utils/zstream/izstream.hpp submodules/Utils/src/Console.o: submodules/Utils/src/Utils/zstream/ozstream.hpp submodules/Utils/src/Console.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp submodules/Utils/src/Console.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +submodules/Utils/src/Console.o: submodules/Utils/src/Utils/rang.hxx submodules/Utils/src/Console.o: submodules/Utils/src/Utils/Trace.hxx submodules/Utils/src/Console.o: submodules/Utils/src/Utils/Console.hxx submodules/Utils/src/Console.o: submodules/Utils/src/Utils/Malloc.hxx @@ -761,7 +947,6 @@ submodules/Utils/src/Console.o: submodules/Utils/src/Utils/TicToc.hxx submodules/Utils/src/Console.o: submodules/Utils/src/Utils/ThreadPool.hxx submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils.hh submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/Utils.hxx -submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/rang.hpp submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/fmt/printf.h submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/fmt/ostream.h submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/fmt/format.h @@ -776,6 +961,7 @@ submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/zstream/izstream.hpp submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/zstream/ozstream.hpp submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/rang.hxx submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/Trace.hxx submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/Console.hxx submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/Malloc.hxx @@ -784,7 +970,6 @@ submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/TicToc.hxx submodules/Utils/src/Malloc.o: submodules/Utils/src/Utils/ThreadPool.hxx submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils.hh submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/Utils.hxx -submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/rang.hpp submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/fmt/printf.h submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/fmt/ostream.h submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/fmt/format.h @@ -799,15 +984,38 @@ submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/zstream/izstream.hpp submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/zstream/ozstream.hpp submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/rang.hxx submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/Trace.hxx submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/Console.hxx submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/Malloc.hxx submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/Numbers.hxx submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/TicToc.hxx submodules/Utils/src/Numbers.o: submodules/Utils/src/Utils/ThreadPool.hxx +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils.hh +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/Utils.hxx +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/fmt/printf.h +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/fmt/ostream.h +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/fmt/format.h +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/fmt/core.h +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/fmt/chrono.h +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/fmt/locale.h +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/fmt/ostream.h +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/zstream/izstream.hpp +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/zstream/zstream_common.hpp +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/zstream/izstream_impl.hpp +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/zstream/izstream.hpp +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/rang.hxx +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/Trace.hxx +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/Console.hxx +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/Malloc.hxx +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/Numbers.hxx +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/TicToc.hxx +submodules/Utils/src/TicToc.o: submodules/Utils/src/Utils/ThreadPool.hxx submodules/Utils/src/Trace.o: submodules/Utils/src/Utils.hh submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/Utils.hxx -submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/rang.hpp submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/fmt/printf.h submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/fmt/ostream.h submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/fmt/format.h @@ -822,6 +1030,7 @@ submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/zstream/izstream.hpp submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/zstream/ozstream.hpp submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/rang.hxx submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/Trace.hxx submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/Console.hxx submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/Malloc.hxx @@ -830,7 +1039,6 @@ submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/TicToc.hxx submodules/Utils/src/Trace.o: submodules/Utils/src/Utils/ThreadPool.hxx submodules/Utils/src/Utils.o: submodules/Utils/src/Utils.hh submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/Utils.hxx -submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/rang.hpp submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/fmt/printf.h submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/fmt/ostream.h submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/fmt/format.h @@ -845,12 +1053,48 @@ submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/zstream/izstream.hpp submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/zstream/ozstream.hpp submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/rang.hxx submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/Trace.hxx submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/Console.hxx submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/Malloc.hxx submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/Numbers.hxx submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/TicToc.hxx submodules/Utils/src/Utils.o: submodules/Utils/src/Utils/ThreadPool.hxx +submodules/Utils/src/fmt.o: submodules/Utils/src/Utils/fmt/os.cc +submodules/Utils/src/fmt.o: submodules/Utils/src/Utils/fmt/os.h +submodules/Utils/src/fmt.o: submodules/Utils/src/Utils/fmt/format.h +submodules/Utils/src/fmt.o: submodules/Utils/src/Utils/fmt/core.h +submodules/Utils/src/fmt.o: submodules/Utils/src/Utils/fmt/format.cc +submodules/Utils/src/fmt.o: submodules/Utils/src/Utils/fmt/format-inl.h +submodules/Utils/src/rang.o: submodules/Utils/src/Utils.hh +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/Utils.hxx +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/fmt/printf.h +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/fmt/ostream.h +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/fmt/format.h +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/fmt/core.h +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/fmt/chrono.h +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/fmt/locale.h +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/fmt/ostream.h +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/zstream/izstream.hpp +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/zstream/zstream_common.hpp +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/zstream/izstream_impl.hpp +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/zstream/izstream.hpp +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/zstream/ozstream_impl.hpp +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/zstream/ozstream.hpp +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/rang.hxx +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/Trace.hxx +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/Console.hxx +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/Malloc.hxx +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/Numbers.hxx +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/TicToc.hxx +submodules/Utils/src/rang.o: submodules/Utils/src/Utils/ThreadPool.hxx +submodules/Utils/src/Utils/fmt/format.o: submodules/Utils/src/Utils/fmt/format-inl.h +submodules/Utils/src/Utils/fmt/format.o: submodules/Utils/src/Utils/fmt/format.h +submodules/Utils/src/Utils/fmt/format.o: submodules/Utils/src/Utils/fmt/core.h +submodules/Utils/src/Utils/fmt/os.o: submodules/Utils/src/Utils/fmt/os.h +submodules/Utils/src/Utils/fmt/os.o: submodules/Utils/src/Utils/fmt/format.h +submodules/Utils/src/Utils/fmt/os.o: submodules/Utils/src/Utils/fmt/core.h submodules/quarticRootsFlocke/src/PolynomialRoots-1-Quadratic.o: submodules/quarticRootsFlocke/src/PolynomialRoots.hh submodules/quarticRootsFlocke/src/PolynomialRoots-2-Cubic.o: submodules/quarticRootsFlocke/src/PolynomialRoots.hh submodules/quarticRootsFlocke/src/PolynomialRoots-3-Quartic.o: submodules/quarticRootsFlocke/src/PolynomialRoots.hh diff --git a/src/SplineAkima.cc b/src/SplineAkima.cc index cf6760af..b2c45487 100644 --- a/src/SplineAkima.cc +++ b/src/SplineAkima.cc @@ -133,8 +133,8 @@ namespace Splines { } #ifndef DOXYGEN_SHOULD_SKIP_THIS - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; #endif // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SplineAkima.hxx b/src/SplineAkima.hxx index 61dd2f89..fdd7de84 100644 --- a/src/SplineAkima.hxx +++ b/src/SplineAkima.hxx @@ -40,13 +40,13 @@ namespace Splines { #endif - /*! - * Smooth Curve Fitting Based on Local Procedures - * - * *Reference* - * - * - *Hiroshi Akima*, Journal of the ACM, Vol.17, No. 4, 589-602, 1970. - */ + //! + //! Smooth Curve Fitting Based on Local Procedures + //! + //! *Reference* + //! + //! - *Hiroshi Akima*, Journal of the ACM, Vol.17, No. 4, 589-602, 1970. + //! class AkimaSpline : public CubicSplineBase { public: @@ -55,17 +55,21 @@ namespace Splines { using CubicSplineBase::build; #endif - /*! - * Construct an empty spline of type ``AkimaSpline`` - */ + //! + //! Construct an empty spline of type `AkimaSpline` + //! AkimaSpline( string const & name = "AkimaSpline" ) : CubicSplineBase( name ) {} - //! spline destructor + //! + //! Spline destructor. + //! ~AkimaSpline() override {} - //! Return spline type (as number) + //! + //! Return spline type (as number). + //! unsigned type() const override { return AKIMA_TYPE; } // --------------------------- VIRTUALS ----------------------------------- diff --git a/src/SplineAkima2D.cc b/src/SplineAkima2D.cc index 3900be83..bdb392b8 100644 --- a/src/SplineAkima2D.cc +++ b/src/SplineAkima2D.cc @@ -285,12 +285,12 @@ namespace Splines { #endif - /*! - * This subroutine estimates three partial derivatives, zx, zy, and - * zxy, of a bivariate function, z(x,y), on a rectangular grid in - * the x-y plane. It is based on the revised Akima method that has - * the accuracy of a bicubic polynomial. - */ + //! + //! This subroutine estimates three partial derivatives, zx, zy, and + //! zxy, of a bivariate function, z(x,y), on a rectangular grid in + //! the x-y plane. It is based on the revised Akima method that has + //! the accuracy of a bicubic polynomial. + //! void Akima2Dspline::makeSpline() { @@ -395,10 +395,10 @@ namespace Splines { fmt::print( s, "Nx = {} Ny = {}\n", m_nx, m_ny ); for ( integer i = 1; i < m_nx; ++i ) { for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t( ipos_C(i-1,j-1,m_ny) ); - size_t i10 = size_t( ipos_C(i,j-1,m_ny) ); - size_t i01 = size_t( ipos_C(i-1,j,m_ny) ); - size_t i11 = size_t( ipos_C(i,j,m_ny) ); + size_t i00 = size_t( ipos_C(i-1,j-1) ); + size_t i10 = size_t( ipos_C(i,j-1) ); + size_t i01 = size_t( ipos_C(i-1,j) ); + size_t i11 = size_t( ipos_C(i,j) ); fmt::print( s, "patch ({},{)\n" " DX = {:<12.4} DY = {:<12.4}\n" diff --git a/src/SplineAkima2D.hxx b/src/SplineAkima2D.hxx index 1106fbf6..4b00184a 100644 --- a/src/SplineAkima2D.hxx +++ b/src/SplineAkima2D.hxx @@ -28,21 +28,23 @@ namespace Splines { - /*! - * Smooth Curve Fitting Based on Local Procedures - * - * *Reference* - * - * - *Hiroshi Akima*, A Method of Bivariate Interpolation and - * Smooth Surface Fitting for Irregularly Distributed Data Points. - * ACM Transactions on Mathematical Software, Vol.4, 148-164, 1978. - */ + //! + //! Smooth Curve Fitting Based on Local Procedures + //! + //! *Reference* + //! + //! - *Hiroshi Akima*, A Method of Bivariate Interpolation and + //! Smooth Surface Fitting for Irregularly Distributed Data Points. + //! ACM Transactions on Mathematical Software, Vol.4, 148-164, 1978. + //! class Akima2Dspline : public BiCubicSplineBase { void makeSpline() override; public: + //! //! spline constructor + //! Akima2Dspline( string const & name = "Spline" ) : BiCubicSplineBase( name ) {} diff --git a/src/SplineBessel.cc b/src/SplineBessel.cc index 421c3817..f8f19f12 100644 --- a/src/SplineBessel.cc +++ b/src/SplineBessel.cc @@ -105,8 +105,8 @@ namespace Splines { Utils::checkNaN( m_Yp, (msg+" Yp").c_str(), m_npts, __LINE__, __FILE__ ); } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SplineBessel.hxx b/src/SplineBessel.hxx index c96d97c9..d7084b2b 100644 --- a/src/SplineBessel.hxx +++ b/src/SplineBessel.hxx @@ -40,7 +40,9 @@ namespace Splines { #endif + //! //! Bessel spline class + //! class BesselSpline : public CubicSplineBase { public: @@ -49,15 +51,21 @@ namespace Splines { using CubicSplineBase::reserve; #endif + //! //! spline constructor + //! BesselSpline( string const & name = "BesselSpline" ) : CubicSplineBase( name ) {} + //! //! spline destructor + //! ~BesselSpline() override {} + //! //! Return spline type (as number) + //! unsigned type() const override { return BESSEL_TYPE; } // --------------------------- VIRTUALS ----------------------------------- diff --git a/src/SplineBiCubic.cc b/src/SplineBiCubic.cc index b742457c..e5a9ae25 100644 --- a/src/SplineBiCubic.cc +++ b/src/SplineBiCubic.cc @@ -66,10 +66,10 @@ namespace Splines { fmt::print( "Nx = {} Ny = {}\n", m_nx, m_ny ); for ( integer i = 1; i < m_nx; ++i ) { for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t(this->ipos_C(i-1,j-1,m_ny)); - size_t i10 = size_t(this->ipos_C(i,j-1,m_ny)); - size_t i01 = size_t(this->ipos_C(i-1,j,m_ny)); - size_t i11 = size_t(this->ipos_C(i,j,m_ny)); + size_t i00 = size_t(this->ipos_C(i-1,j-1)); + size_t i10 = size_t(this->ipos_C(i,j-1)); + size_t i01 = size_t(this->ipos_C(i-1,j)); + size_t i11 = size_t(this->ipos_C(i,j)); fmt::print( s, "patch ({},{})\n" "DX = {:<12.4} DY = {:<12.4}\n" diff --git a/src/SplineBiQuintic.cc b/src/SplineBiQuintic.cc index ca0e8f1f..1f9b8d69 100644 --- a/src/SplineBiQuintic.cc +++ b/src/SplineBiQuintic.cc @@ -106,10 +106,10 @@ namespace Splines { fmt::print( s, "Nx = {} Ny = {}\n", m_nx, m_ny ); for ( integer i = 1; i < m_nx; ++i ) { for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t(this->ipos_C(i-1,j-1,m_ny)); - size_t i10 = size_t(this->ipos_C(i,j-1,m_ny)); - size_t i01 = size_t(this->ipos_C(i-1,j,m_ny)); - size_t i11 = size_t(this->ipos_C(i,j,m_ny)); + size_t i00 = size_t(this->ipos_C(i-1,j-1)); + size_t i10 = size_t(this->ipos_C(i,j-1)); + size_t i01 = size_t(this->ipos_C(i-1,j)); + size_t i11 = size_t(this->ipos_C(i,j)); fmt::print( s, "patch({},{})\n" " DX = {:<12.4} DY = {:<12.4}\n" diff --git a/src/SplineBilinear.cc b/src/SplineBilinear.cc index 9ca7d687..b79b0a09 100644 --- a/src/SplineBilinear.cc +++ b/src/SplineBilinear.cc @@ -122,10 +122,10 @@ namespace Splines { fmt::print( s, "Nx = {} Ny = {}\n", m_nx, m_ny ); for ( integer i = 1; i < m_nx; ++i ) { for ( integer j = 1; j < m_ny; ++j ) { - size_t i00 = size_t(this->ipos_C(i-1,j-1,m_ny)); - size_t i10 = size_t(this->ipos_C(i,j-1,m_ny)); - size_t i01 = size_t(this->ipos_C(i-1,j,m_ny)); - size_t i11 = size_t(this->ipos_C(i,j,m_ny)); + size_t i00 = size_t(this->ipos_C(i-1,j-1)); + size_t i10 = size_t(this->ipos_C(i,j-1)); + size_t i01 = size_t(this->ipos_C(i-1,j)); + size_t i11 = size_t(this->ipos_C(i,j)); fmt::print( s, "patch ({},{})\n" " DX = {:<12.4} DY = {:<12.4}\n" diff --git a/src/SplineConstant.cc b/src/SplineConstant.cc index 7fbb3e6e..a8019cba 100644 --- a/src/SplineConstant.cc +++ b/src/SplineConstant.cc @@ -141,8 +141,8 @@ namespace Splines { ConstantSpline::order() const { return 1; } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -172,4 +172,35 @@ namespace Splines { this->build( x, y ); } + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + void + ConstantSpline::y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const { + UTILS_ASSERT0( + m_npts > 0, "ConstantSpline::y_min_max() empty spline!" + ); + // find max min alongh the nodes + i_min_pos = i_max_pos = 0; + x_min_pos = x_max_pos = m_X[0]; + y_min = y_max = m_Y[0]; + for ( integer i = 1; i < m_npts-1; ++i ) { + real_type const & P1 = m_Y[i]; + if ( P1 > y_max ) { + y_max = P1; + x_max_pos = m_X[i]; + i_max_pos = i; + } else if ( P1 < y_min ) { + y_min = P1; + x_min_pos = m_X[i]; + i_min_pos = i; + } + } + } } diff --git a/src/SplineConstant.hxx b/src/SplineConstant.hxx index d67d305a..517c757b 100644 --- a/src/SplineConstant.hxx +++ b/src/SplineConstant.hxx @@ -80,15 +80,10 @@ namespace Splines { // --------------------------- VIRTUALS ----------------------------------- - //! Allocate memory for `npts` points - void - reserve( integer npts ) override; + void reserve( integer npts ) override; - //! Cancel the support points, empty the spline. - void - clear() override; + void clear() override; - //! get the piecewise polinomials of the spline integer // order coeffs( real_type * const cfs, @@ -99,6 +94,16 @@ namespace Splines { integer order() const override; void setup( GenericContainer const & gc ) override; + void + y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const override; + }; } diff --git a/src/SplineCubic.cc b/src/SplineCubic.cc index 8d1ca8b1..886d4e0e 100644 --- a/src/SplineCubic.cc +++ b/src/SplineCubic.cc @@ -486,12 +486,26 @@ namespace Splines { } #ifndef DOXYGEN_SHOULD_SKIP_THIS - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; #endif // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + //! + //! + //! Setup a spline using a `GenericContainer` + //! + //! - gc("xdata") vector with the `x` coordinate of the data + //! - gc("ydata") vector with the `y` coordinate of the data + //! + //! may contain + //! - gc("bc_begin") and/or gc("bc_end") + //! - "extrapolate" extrapolate the boundary condition + //! - "natural" make second derivative 0 at the border + //! - "parabolic" make third derivative 0 at the border + //! - "not_a_knot" not a knot condition of De Boor + //! void CubicSpline::setup( GenericContainer const & gc ) { /* diff --git a/src/SplineCubic.hxx b/src/SplineCubic.hxx index 50f3c5a0..222626db 100644 --- a/src/SplineCubic.hxx +++ b/src/SplineCubic.hxx @@ -63,51 +63,68 @@ namespace Splines { #endif + //! //! Cubic Spline Management Class + //! class CubicSpline : public CubicSplineBase { private: CUBIC_SPLINE_TYPE_BC m_bc0, m_bcn; public: + //! \name Constructor + ///@{ + #ifndef DOXYGEN_SHOULD_SKIP_THIS using CubicSplineBase::build; using CubicSplineBase::reserve; #endif + //! //! spline constructor + //! CubicSpline( string const & name = "CubicSpline" ) : CubicSplineBase( name ) , m_bc0( EXTRAPOLATE_BC ) , m_bcn( EXTRAPOLATE_BC ) {} + //! //! spline destructor + //! ~CubicSpline() override {} - /*! - * Set the boudary consition for initial point - * \param bc0 initial boundary condition. - */ + ///@} + + //! \name Setup + ///@{ + + //! + //! Set the boudary consition for initial point + //! \param[in] bc0 initial boundary condition. + //! void setInitialBC( CUBIC_SPLINE_TYPE_BC bc0 ) { m_bc0 = bc0; } - /*! - * Set the boudary consition for final point - * \param bcn final boundary condition. - */ + //! + //! Set the boudary consition for final point + //! \param[in] bcn final boundary condition. + //! void setFinalBC( CUBIC_SPLINE_TYPE_BC bcn ) { m_bcn = bcn; } - //! Return spline type (as number) - unsigned type() const override { return CUBIC_TYPE; } - // --------------------------- VIRTUALS ----------------------------------- void build() override; void setup( GenericContainer const & gc ) override; + ///@} + + //! + //! Return spline type (as number) + //! + unsigned type() const override { return CUBIC_TYPE; } }; } diff --git a/src/SplineCubicBase.cc b/src/SplineCubicBase.cc index 7bd45720..0d0cf9d3 100644 --- a/src/SplineCubicBase.cc +++ b/src/SplineCubicBase.cc @@ -18,6 +18,7 @@ \*--------------------------------------------------------------------------*/ #include "Splines.hh" +#include "PolynomialRoots.hh" #include #ifdef __clang__ @@ -29,7 +30,6 @@ #ifndef DOXYGEN_SHOULD_SKIP_THIS using namespace std; // load standard namspace -#endif namespace Splines { @@ -73,7 +73,7 @@ namespace Splines { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - CubicSplineBase::clear(void) { + CubicSplineBase::clear() { if ( !m_external_alloc ) m_baseValue.free(); m_npts = m_npts_reserved = 0; m_external_alloc = false; @@ -282,4 +282,48 @@ namespace Splines { ); } + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + void + CubicSplineBase::y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const { + UTILS_ASSERT0( + m_npts > 0, "CubicSplineBase::y_min_max() empty spline!" + ); + // find max min alongh the nodes + i_min_pos = i_max_pos = 0; + x_min_pos = x_max_pos = m_X[0]; + y_min = y_max = m_Y[0]; + PolynomialRoots::Quadratic q; + for ( integer i = 1; i < m_npts; ++i ) { + real_type const & X0 = m_X[i-1]; + real_type const & X1 = m_X[i]; + real_type const & P0 = m_Y[i-1]; + real_type const & P1 = m_Y[i]; + real_type const & DP0 = m_Yp[i-1]; + real_type const & DP1 = m_Yp[i]; + real_type H = X1 - X0; + real_type A, B, C, D; + Hermite3toPoly( H, P0, P1, DP0, DP1, A, B, C, D ); + q.setup( 3*A, 2*B, C ); + real_type r[2]; + integer nr = q.getRootsInOpenRange( 0, H, r ); + for ( integer j = 0; j < nr; ++j ) { + real_type rr = r[j]; + real_type yy = (((A*rr)+B)*rr+C)*rr+D; + if ( yy > y_max ) { y_max = yy; x_max_pos = X0+rr; i_max_pos = i; } + else if ( yy < y_min ) { y_min = yy; x_min_pos = X0+rr; i_min_pos = i; } + } + if ( P1 > y_max ) { y_max = P1; x_max_pos = X1; i_max_pos = i; } + else if ( P1 < y_min ) { y_min = P1; x_min_pos = X1; i_min_pos = i; } + } + } } + +#endif \ No newline at end of file diff --git a/src/SplineHermite.cc b/src/SplineHermite.cc index ba3fe093..7f162fd2 100644 --- a/src/SplineHermite.cc +++ b/src/SplineHermite.cc @@ -266,9 +266,17 @@ namespace Splines { ); } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; - + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; + + //! + //! + //! Setup a spline using a `GenericContainer` + //! + //! - gc("xdata") vector with the `x` coordinate of the data + //! - gc("ydata") vector with the `y` coordinate of the data + //! - gc("ypdata") vector with the `y` derivative of the data + //! void HermiteSpline::setup( GenericContainer const & gc ) { /* diff --git a/src/SplineLinear.cc b/src/SplineLinear.cc index 16eedbe6..13813d52 100644 --- a/src/SplineLinear.cc +++ b/src/SplineLinear.cc @@ -103,7 +103,7 @@ namespace Splines { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - LinearSpline::clear(void) { + LinearSpline::clear() { if ( !m_external_alloc ) m_baseValue.free(); m_npts = m_npts_reserved = 0; m_external_alloc = false; @@ -152,8 +152,8 @@ namespace Splines { integer LinearSpline::order( ) const { return 2; } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -183,4 +183,35 @@ namespace Splines { this->build( x, y ); } + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + void + LinearSpline::y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const { + UTILS_ASSERT0( + m_npts > 0, "LinearSpline::y_min_max() empty spline!" + ); + // find max min alongh the nodes + i_min_pos = i_max_pos = 0; + x_min_pos = x_max_pos = m_X[0]; + y_min = y_max = m_Y[0]; + for ( integer i = 1; i < m_npts; ++i ) { + real_type const & P1 = m_Y[i]; + if ( P1 > y_max ) { + y_max = P1; + x_max_pos = m_X[i]; + i_max_pos = i; + } else if ( P1 < y_min ) { + y_min = P1; + x_min_pos = m_X[i]; + i_min_pos = i; + } + } + } } diff --git a/src/SplineLinear.hxx b/src/SplineLinear.hxx index edc95632..64e8c91c 100644 --- a/src/SplineLinear.hxx +++ b/src/SplineLinear.hxx @@ -74,16 +74,10 @@ namespace Splines { // --------------------------- VIRTUALS ----------------------------------- - //! Allocate memory for `npts` points void reserve( integer npts ) override; - - //! added for compatibility with cubic splines void build() override {} - - //! Cancel the support points, empty the spline. void clear() override; - //! get the piecewise polinomials of the spline integer // order coeffs( real_type * const cfs, @@ -94,6 +88,16 @@ namespace Splines { integer order() const override; void setup( GenericContainer const & gc ) override; + void + y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const override; + }; } diff --git a/src/SplinePchip.cc b/src/SplinePchip.cc index 6427b1db..cfd52932 100644 --- a/src/SplinePchip.cc +++ b/src/SplinePchip.cc @@ -107,18 +107,18 @@ namespace Splines { return sa*sb; } - /*! - * Reference: - * ========== - * - * F.N. Fritsch, R.E. Carlson: - * Monotone Piecewise Cubic Interpolation, - * SIAM J. Numer. Anal. Vol 17, No. 2, April 1980 - * - * F.N. Fritsch and J. Butland: - * A method for constructing local monotone piecewise cubic interpolants, - * SIAM Journal on Scientific and Statistical Computing 5, 2 (June 1984), pp. 300-304. - */ + //! + //! References: + //! ========== + //! + //! F.N. Fritsch, R.E. Carlson: + //! Monotone Piecewise Cubic Interpolation, + //! SIAM J. Numer. Anal. Vol 17, No. 2, April 1980 + //! + //! F.N. Fritsch and J. Butland: + //! A method for constructing local monotone piecewise cubic interpolants, + //! SIAM Journal on Scientific and Statistical Computing 5, 2 (June 1984), pp. 300-304. + //! void Pchip_build( real_type const * X, @@ -274,8 +274,8 @@ namespace Splines { Utils::checkNaN( m_Yp, (msg+" Yp").c_str(), m_npts, __LINE__, __FILE__ ); } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SplineQuintic.cc b/src/SplineQuintic.cc index 6178fe49..ea5d2776 100644 --- a/src/SplineQuintic.cc +++ b/src/SplineQuintic.cc @@ -275,8 +275,8 @@ namespace Splines { Utils::checkNaN( m_Ypp, (msg+" Ypp").c_str(), m_npts, __LINE__, __FILE__ ); } - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SplineQuintic.hxx b/src/SplineQuintic.hxx index 82663994..63fc3f41 100644 --- a/src/SplineQuintic.hxx +++ b/src/SplineQuintic.hxx @@ -41,6 +41,9 @@ namespace Splines { QUINTIC_SPLINE_TYPE m_q_sub_type; public: + //! \name Constructors + ///@{ + #ifndef DOXYGEN_SHOULD_SKIP_THIS using QuinticSplineBase::build; using QuinticSplineBase::reserve; @@ -55,6 +58,8 @@ namespace Splines { //! spline destructor ~QuinticSpline() override {} + ///@} + void setQuinticType( QUINTIC_SPLINE_TYPE qt ) { m_q_sub_type = qt; } @@ -63,7 +68,6 @@ namespace Splines { //! Build a Monotone quintic spline from previously inserted points void build() override; void setup( GenericContainer const & gc ) override; - }; } diff --git a/src/SplineQuinticBase.cc b/src/SplineQuinticBase.cc index 258b1cb5..2e06c080 100644 --- a/src/SplineQuinticBase.cc +++ b/src/SplineQuinticBase.cc @@ -18,6 +18,7 @@ \*--------------------------------------------------------------------------*/ #include "Splines.hh" +#include "PolynomialRoots.hh" #include #ifdef __clang__ @@ -75,7 +76,7 @@ namespace Splines { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - QuinticSplineBase::clear(void) { + QuinticSplineBase::clear() { if ( !m_external_alloc ) m_baseValue.free(); m_npts = m_npts_reserved = 0; m_external_alloc = false; @@ -299,4 +300,48 @@ namespace Splines { ); } + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + void + QuinticSplineBase::y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const { + UTILS_ASSERT0( + m_npts > 0, "QuinticSplineBase::y_min_max() empty spline!" + ); + // find max min alongh the nodes + i_min_pos = i_max_pos = 0; + x_min_pos = x_max_pos = m_X[0]; + y_min = y_max = m_Y[0]; + PolynomialRoots::Quartic q; + for ( integer i = 1; i < m_npts; ++i ) { + real_type const & X0 = m_X[i-1]; + real_type const & X1 = m_X[i]; + real_type const & P0 = m_Y[i-1]; + real_type const & P1 = m_Y[i]; + real_type const & DP0 = m_Yp[i-1]; + real_type const & DP1 = m_Yp[i]; + real_type const & DDP0 = m_Ypp[i-1]; + real_type const & DDP1 = m_Ypp[i]; + real_type H = X1 - X0; + real_type A, B, C, D, E, F; + Hermite5toPoly( H, P0, P1, DP0, DP1, DDP0, DDP1, A, B, C, D, E, F ); + q.setup( 5*A, 4*B, 3*C, 2*D, E ); + real_type r[4]; + integer nr = q.getRootsInOpenRange( 0, H, r ); + for ( integer j = 0; j < nr; ++j ) { + real_type rr = r[j]; + real_type yy = (((((A*rr)+B)*rr+C)*rr+D)*rr+E)*rr+F; + if ( yy > y_max ) { y_max = yy; x_max_pos = X0+rr; i_max_pos = i; } + else if ( yy < y_min ) { y_min = yy; x_min_pos = X0+rr; i_min_pos = i; } + } + if ( P1 > y_max ) { y_max = P1; x_max_pos = X1; i_max_pos = i; } + else if ( P1 < y_min ) { y_min = P1; x_min_pos = X1; i_min_pos = i; } + } + } } diff --git a/src/SplineQuinticBase.hxx b/src/SplineQuinticBase.hxx index eac053af..1491a45a 100644 --- a/src/SplineQuinticBase.hxx +++ b/src/SplineQuinticBase.hxx @@ -29,7 +29,9 @@ namespace Splines { - //! cubic quintic base class + //! + //! Quintic spline base class + //! class QuinticSplineBase : public Spline { protected: Utils::Malloc m_baseValue; @@ -40,11 +42,16 @@ namespace Splines { public: + //! \name Constructors + ///@{ + #ifndef DOXYGEN_SHOULD_SKIP_THIS using Spline::build; #endif - //! spline constructor + //! + //! Spline constructor + //! QuinticSplineBase( string const & name = "Spline" ) : Spline(name) , m_baseValue(name+"_memeory") @@ -55,24 +62,34 @@ namespace Splines { ~QuinticSplineBase() override {} + ///@} + void copySpline( QuinticSplineBase const & S ); - //! return the i-th node of the spline (y' component). + //! + //! Return the i-th node of the spline (y' component). + //! real_type ypNode( integer i ) const { return m_Yp[size_t(i)]; } - //! return the i-th node of the spline (y'' component). + //! + //! Return the i-th node of the spline (y'' component). + //! real_type yppNode( integer i ) const { return m_Ypp[size_t(i)]; } - //! change X-range of the spline + //! + //! Change X-range of the spline + //! void setRange( real_type xmin, real_type xmax ); + //! //! Use externally allocated memory for `npts` points + //! void reserve_external( integer n, @@ -82,6 +99,16 @@ namespace Splines { real_type * & p_Ypp ); + void + y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const override; + // --------------------------- VIRTUALS ----------------------------------- real_type operator () ( real_type x ) const override; @@ -103,7 +130,9 @@ namespace Splines { void reserve( integer npts ) override; void clear() override; - //! get the piecewise polinomials of the spline + //! + //! Get the piecewise polinomials of the spline + //! integer // order coeffs( real_type * const cfs, diff --git a/src/SplineSet.hxx b/src/SplineSet.hxx index 9fcb6be1..80a4d721 100644 --- a/src/SplineSet.hxx +++ b/src/SplineSet.hxx @@ -80,22 +80,28 @@ namespace Splines { private: - /*! - | find `x` value such that the monotone spline - | `(spline[spl])(x)` intersect the value `zeta` - */ + //! + //! find `x` value such that the monotone spline + //! `(spline[spl])(x)` intersect the value `zeta` + //! Spline const * intersect( integer spl, real_type zeta, real_type & x ) const; public: + //! \name Constructors + ///@{ + //! spline constructor SplineSet( string const & name = "SplineSet" ); //! spline destructor virtual ~SplineSet(); + ///@} + //! \name Info + ///@{ string const & name() const { return m_name; } string const & @@ -164,6 +170,11 @@ namespace Splines { return m_Ymax[idx]; } + ///@} + + //! \name Access splines + ///@{ + //! Return pointer to the `i`-th spline Spline * getSpline( integer i ) const; @@ -174,6 +185,11 @@ namespace Splines { return m_splines[idx]; } + ///@} + + //! \name Evaluate + ///@{ + //! Evaluate spline value real_type operator () ( real_type x, integer spl ) const { @@ -294,35 +310,51 @@ namespace Splines { return S->DDDDD(x); } + ///@} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // \group Evaluate to std vector - //@{ + //! \name Evaluate to std vector + ///@{ + //! //! Evaluate all the splines at `x` + //! void eval( real_type x, vector & vals ) const; + //! //! Evaluate the fist derivative of all the splines at `x` + //! void eval_D( real_type x, vector & vals ) const; + //! //! Evaluate the second derivative of all the splines at `x` + //! void eval_DD( real_type x, vector & vals ) const; + //! //! Evaluate the third derivative of all the splines at `x` + //! void eval_DDD( real_type x, vector & vals ) const; + //! //! Evaluate the 4th derivative of all the splines at `x` + //! void eval_DDDD( real_type x, vector & vals ) const; + //! //! Evaluate the 5th derivative of all the splines at `x` + //! void eval_DDDDD( real_type x, vector & vals ) const; - //@} + ///@} - // \group Evaluate to vector - //@{ + //! \name Evaluate to vector + ///@{ + //! //! Evaluate all the splines at `x` + //! void eval( real_type x, @@ -330,7 +362,9 @@ namespace Splines { integer incy = 1 ) const; + //! //! Evaluate the fist derivative of all the splines at `x` + //! void eval_D( real_type x, @@ -338,7 +372,9 @@ namespace Splines { integer incy = 1 ) const; + //! //! Evaluate the second derivative of all the splines at `x` + //! void eval_DD( real_type x, @@ -346,7 +382,9 @@ namespace Splines { integer incy = 1 ) const; + //! //! Evaluate the third derivative of all the splines at `x` + //! void eval_DDD( real_type x, @@ -354,7 +392,9 @@ namespace Splines { integer incy = 1 ) const; + //! //! Evaluate the 4th derivative of all the splines at `x` + //! void eval_DDDD( real_type x, @@ -362,7 +402,9 @@ namespace Splines { integer incy = 1 ) const; + //! //! Evaluate the 5th derivative of all the splines at `x` + //! void eval_DDDDD( real_type x, @@ -370,13 +412,14 @@ namespace Splines { integer incy = 1 ) const; - //@} + ///@} - // \group Evaluate using another spline as independent - //@{ + //! \name Evaluate using another spline as independent + ///@{ - // change independent variable + //! //! Evaluate all the splines at `zeta` using spline[spl] as independent + //! void eval2( integer spl, @@ -384,10 +427,10 @@ namespace Splines { vector & vals ) const; - /*! - | Evaluate the fist derivative of all the splines - | at `zeta` using spline[spl] as independent - */ + //! + //! Evaluate the fist derivative of all the splines + //! at `zeta` using spline[spl] as independent + //! void eval2_D( integer spl, @@ -395,10 +438,10 @@ namespace Splines { vector & vals ) const; - /*! - | Evaluate the second derivative of all the splines - | at `zeta` using spline[spl] as independent - */ + //! + //! Evaluate the second derivative of all the splines + //! at `zeta` using spline[spl] as independent + //! void eval2_DD( integer spl, @@ -406,10 +449,10 @@ namespace Splines { vector & vals ) const; - /*! - | Evaluate the third derivative of all the splines - | at `zeta` using spline[spl] as independent - */ + //! + //! Evaluate the third derivative of all the splines + //! at `zeta` using spline[spl] as independent + //! void eval2_DDD( integer spl, @@ -417,12 +460,14 @@ namespace Splines { vector & vals ) const; - //@} + ///@} - // \group Evaluate using another spline as independent - //@{ + //! \name Evaluate using another spline as independent + ///@{ + //! //! Evaluate all the splines at `zeta` using spline[spl] as independent + //! void eval2( integer spl, @@ -431,10 +476,10 @@ namespace Splines { integer incy = 1 ) const; - /*! - * Evaluate the fist derivative of all the splines - * at `zeta` using spline[spl] as independent - */ + //! + //! Evaluate the fist derivative of all the splines + //! at `zeta` using spline[spl] as independent + //! void eval2_D( integer spl, @@ -443,10 +488,10 @@ namespace Splines { integer incy = 1 ) const; - /*! - * Evaluate the second derivative of all the splines - * at `zeta` using spline[spl] as independent - */ + //! + //! Evaluate the second derivative of all the splines + //! at `zeta` using spline[spl] as independent + //! void eval2_DD( integer spl, @@ -455,10 +500,10 @@ namespace Splines { integer incy = 1 ) const; - /*! - * Evaluate the 3rd derivative of all the splines - * at `zeta` using spline[spl] as independent - */ + //! + //! Evaluate the 3rd derivative of all the splines + //! at `zeta` using spline[spl] as independent + //! void eval2_DDD( integer spl, @@ -467,15 +512,15 @@ namespace Splines { integer incy = 1 ) const; - //@} + ///@} - // \group Evaluate using another spline as independent - //@{ + // \name Evaluate using another spline as independent + ///@{ - /*! - * Evaluate the spline `name` at `zeta` using - * spline `indep` as independent - */ + //! + //! Evaluate the spline `name` at `zeta` using + //! spline `indep` as independent + //! real_type eval2( real_type zeta, @@ -483,10 +528,10 @@ namespace Splines { char const * name ) const; - /*! - * Evaluate first derivative of the spline `name` - * at `zeta` using spline `indep` as independent - */ + //! + //! Evaluate first derivative of the spline `name` + //! at `zeta` using spline `indep` as independent + //! real_type eval2_D( real_type zeta, @@ -494,10 +539,10 @@ namespace Splines { char const * name ) const; - /*! - * Evaluate second derivative of the spline `name` - * at `zeta` using spline `indep` as independent - */ + //! + //! Evaluate second derivative of the spline `name` + //! at `zeta` using spline `indep` as independent + //! real_type eval2_DD( real_type zeta, @@ -505,10 +550,10 @@ namespace Splines { char const * name ) const; - /*! - * Evaluate third derivative of the spline `name` - * at `zeta` using spline `indep` as independent - */ + //! + //! Evaluate third derivative of the spline `name` + //! at `zeta` using spline `indep` as independent + //! real_type eval2_DDD( real_type zeta, @@ -516,15 +561,15 @@ namespace Splines { char const * name ) const; - //@} + ///@} - // \group Evaluate using another spline as independent - //@{ + //! \name Evaluate using another spline as independent + ///@{ - /*! - * Evaluate the spline `spl` at `zeta` using - * spline `indep` as independent - */ + //! + //! Evaluate the spline `spl` at `zeta` using + //! spline `indep` as independent + //! real_type eval2( real_type zeta, @@ -532,10 +577,10 @@ namespace Splines { integer spl ) const; - /*! - * Evaluate first derivative of the spline `spl` - * at `zeta` using spline `indep` as independent - */ + //! + //! Evaluate first derivative of the spline `spl` + //! at `zeta` using spline `indep` as independent + //! real_type eval2_D( real_type zeta, @@ -543,10 +588,10 @@ namespace Splines { integer spl ) const; - /*! - * Evaluate second derivative of the spline `spl` - * at `zeta` using spline `indep` as independent - */ + //! + //! Evaluate second derivative of the spline `spl` + //! at `zeta` using spline `indep` as independent + //! real_type eval2_DD( real_type zeta, @@ -554,10 +599,10 @@ namespace Splines { integer spl ) const; - /*! - * Evaluate third derivative of the spline `spl` - * at `zeta` using spline `indep` as independent - */ + //! + //! Evaluate third derivative of the spline `spl` + //! at `zeta` using spline `indep` as independent + //! real_type eval2_DDD( real_type zeta, @@ -565,29 +610,29 @@ namespace Splines { integer spl ) const; - //@} + ///@} - // \group Evaluate onto a vector - //@{ + //! \name Evaluate onto a vector + ///@{ - /*! - * Evaluate all the splines at `x` - * and fill a map of values in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` + //! and fill a map of values in a GenericContainer + //! void eval( real_type x, GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` values contained - * in vec and fill a map of vector in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` values contained + //! in vec and fill a map of vector in a GenericContainer + //! void eval( vec_real_type const & vec, GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` and fill a map of - * values in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` and fill a map of + //! values in a GenericContainer with keys in `columns` + //! void eval( real_type x, @@ -595,11 +640,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` + //! void eval( vec_real_type const & vec, @@ -607,13 +652,16 @@ namespace Splines { GenericContainer & vals ) const; - //@} + ///@} + + //! \name Evaluate to GenericContainer using another spline as independent + ///@{ - /*! - * Evaluate all the splines at `zeta` and fill - * a map of values in a GenericContainer and `indep` - * as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill + //! a map of values in a GenericContainer and `indep` + //! as independent spline + //! void eval2( real_type zeta, @@ -621,11 +669,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` values contained in - * vec and fill a map of vector in a GenericContainer and - * `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in + //! vec and fill a map of vector in a GenericContainer and + //! `indep` as independent spline + //! void eval2( vec_real_type const & zetas, @@ -633,11 +681,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` and fill a map - * of values in a GenericContainer with keys in `columns` - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map + //! of values in a GenericContainer with keys in `columns` + //! and `indep` as independent spline + //! void eval2( real_type zeta, @@ -646,11 +694,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` and `indep` as independent spline + //! void eval2( vec_real_type const & zetas, @@ -659,10 +707,15 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` and fill a map - * of values in a GenericContainer and `indep` as independent spline - */ + ///@} + + //! \name Evaluate to GenericContainer using another spline as independent + ///@{ + + //! + //! Evaluate all the splines at `zeta` and fill a map + //! of values in a GenericContainer and `indep` as independent spline + //! void eval2( real_type zeta, @@ -672,11 +725,11 @@ namespace Splines { this->eval2( zeta, this->getPosition(indep), vals ); } - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! and `indep` as independent spline + //! void eval2( vec_real_type const & zetas, @@ -686,11 +739,11 @@ namespace Splines { this->eval2( zetas, this->getPosition(indep), vals ); } - /*! - * Evaluate all the splines at `zeta` and fill a map of - * values in a GenericContainer with keys in `columns` - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of + //! values in a GenericContainer with keys in `columns` + //! and `indep` as independent spline + //! void eval2( real_type zeta, @@ -701,11 +754,11 @@ namespace Splines { this->eval2( zeta, this->getPosition(indep), columns, vals ); } - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` and `indep` as independent spline + //! void eval2( vec_real_type const & zetas, @@ -715,31 +768,35 @@ namespace Splines { ) const { this->eval2( zetas, this->getPosition(indep), columns, vals ); } + ///@} - /*! - * Evaluate all the splines at `x` and fill a map of - * values in a GenericContainer - */ + //! \name Evaluate derivative into a Generic Container + ///@{ + + //! + //! Evaluate all the splines at `x` and fill a map of + //! values in a GenericContainer + //! void eval_D( real_type x, GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` values contained - * in vec and fill a map of vector in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` values contained + //! in vec and fill a map of vector in a GenericContainer + //! void eval_D( vec_real_type const & vec, GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` and fill a map of - * values in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` and fill a map of + //! values in a GenericContainer with keys in `columns` + //! void eval_D( real_type x, @@ -747,11 +804,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` + //! void eval_D( vec_real_type const & vec, @@ -759,10 +816,16 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` and fill a map - * of values in a GenericContainer and `indep` as independent spline - */ + ///@} + + + //! \name Evaluate derivative to GenericContainer using another spline as independent + ///@{ + + //! + //! Evaluate all the splines at `zeta` and fill a map + //! of values in a GenericContainer and `indep` as independent spline + //! void eval2_D( real_type zeta, @@ -770,11 +833,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! and `indep` as independent spline + //! void eval2_D( vec_real_type const & zetas, @@ -782,11 +845,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` and fill a map - * of values in a GenericContainer with keys in `columns` - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map + //! of values in a GenericContainer with keys in `columns` + //! and `indep` as independent spline + //! void eval2_D( real_type zeta, @@ -795,11 +858,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` and `indep` as independent spline + //! void eval2_D( vec_real_type const & zetas, @@ -808,10 +871,15 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` and fill a map - * of values in a GenericContainer and `indep` as independent spline - */ + ///@} + + //! \name Evaluate derivative to GenericContainer using another spline as independent + ///@{ + + //! + //! Evaluate all the splines at `zeta` and fill a map + //! of values in a GenericContainer and `indep` as independent spline + //! void eval2_D( real_type zeta, @@ -821,7 +889,11 @@ namespace Splines { this->eval2_D( zeta, this->getPosition(indep), vals ); } - //! Evaluate all the splines at `zeta` values contained in vec and fill a map of vector in a GenericContainer and `indep` as independent spline + //! + //! Evaluate all the splines at `zeta` values contained in + //! vec and fill a map of vector in a GenericContainer and + //! `indep` as independent spline + //! void eval2_D( vec_real_type const & zetas, @@ -831,11 +903,11 @@ namespace Splines { this->eval2_D( zetas, this->getPosition(indep), vals ); } - /*! - * Evaluate all the splines at `zeta` and fill a map of - * values in a GenericContainer with keys in `columns` - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of + //! values in a GenericContainer with keys in `columns` + //! and `indep` as independent spline + //! void eval2_D( real_type zeta, @@ -846,11 +918,11 @@ namespace Splines { this->eval2_D( zeta, this->getPosition(indep), columns, vals ); } - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` and `indep` as independent spline + //! void eval2_D( vec_real_type const & zetas, @@ -861,30 +933,35 @@ namespace Splines { this->eval2_D( zetas, this->getPosition(indep), columns, vals ); } - /*! - * Evaluate all the splines at `x` and fill a map of - * values in a GenericContainer - */ + ///@} + + //! \name Evaluate second derivative to GenericContainer using another spline as independent + ///@{ + + //! + //! Evaluate all the splines at `x` and fill a map of + //! values in a GenericContainer + //! void eval_DD( real_type x, GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` values contained in vec - * and fill a map of vector in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` values contained in vec + //! and fill a map of vector in a GenericContainer + //! void eval_DD( vec_real_type const & vec, GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` and fill a map of - * values in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` and fill a map of + //! values in a GenericContainer with keys in `columns` + //! void eval_DD( real_type x, @@ -892,10 +969,10 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` values contained in vec and - * fill a map of vector in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` values contained in vec and + //! fill a map of vector in a GenericContainer with keys in `columns` + //! void eval_DD( vec_real_type const & vec, @@ -903,10 +980,10 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` and fill a map of - * values in a GenericContainer and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of + //! values in a GenericContainer and `indep` as independent spline + //! void eval2_DD( real_type zeta, @@ -914,11 +991,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` values contained in vec - * and fill a map of vector in a GenericContainer - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in vec + //! and fill a map of vector in a GenericContainer + //! and `indep` as independent spline + //! void eval2_DD( vec_real_type const & zetas, @@ -926,11 +1003,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` and fill a map - * of values in a GenericContainer with keys in `columns` - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map + //! of values in a GenericContainer with keys in `columns` + //! and `indep` as independent spline + //! void eval2_DD( real_type zeta, @@ -939,11 +1016,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` and `indep` as independent spline + //! void eval2_DD( vec_real_type const & zetas, @@ -952,10 +1029,15 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` and fill a map of - * values in a GenericContainer and `indep` as independent spline - */ + ///@} + + //! \name Evaluate second derivative to GenericContainer using another spline as independent + ///@{ + + //! + //! Evaluate all the splines at `zeta` and fill a map of + //! values in a GenericContainer and `indep` as independent spline + //! void eval2_DD( real_type zeta, @@ -965,11 +1047,11 @@ namespace Splines { this->eval2_DD( zeta, this->getPosition(indep), vals ); } - /*! - * Evaluate all the splines at `zeta` values contained in vec - * and fill a map of vector in a GenericContainer - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in vec + //! and fill a map of vector in a GenericContainer + //! and `indep` as independent spline + //! void eval2_DD( vec_real_type const & zetas, @@ -979,11 +1061,11 @@ namespace Splines { this->eval2_DD( zetas, this->getPosition(indep), vals ); } - /*! - * Evaluate all the splines at `zeta` and fill a map - * of values in a GenericContainer with keys in `columns` - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map + //! of values in a GenericContainer with keys in `columns` + //! and `indep` as independent spline + //! void eval2_DD( real_type zeta, @@ -994,11 +1076,11 @@ namespace Splines { this->eval2_DD( zeta, this->getPosition(indep), columns, vals ); } - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` and `indep` as independent spline + //! void eval2_DD( vec_real_type const & zetas, @@ -1008,31 +1090,35 @@ namespace Splines { ) const { this->eval2_DD( zetas, this->getPosition(indep), columns, vals ); } + ///@} + + //! \name Evaluate third derivative to GenericContainer + ///@{ - /*! - * Evaluate all the splines at `x` and fill a map - * of values in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` and fill a map + //! of values in a GenericContainer + //! void eval_DDD( real_type x, GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` values contained - * in vec and fill a map of vector in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` values contained + //! in vec and fill a map of vector in a GenericContainer + //! void eval_DDD( vec_real_type const & vec, GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` and fill a map of - * values in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` and fill a map of + //! values in a GenericContainer with keys in `columns` + //! void eval_DDD( real_type x, @@ -1040,21 +1126,25 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `x` values contained in vec - * and fill a map of vector in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` values contained in vec + //! and fill a map of vector in a GenericContainer with keys in `columns` + //! void eval_DDD( vec_real_type const & vec, vec_string_type const & columns, GenericContainer & vals ) const; + ///@} - /*! - * Evaluate all the splines at `zeta` and fill a map of values - * in a GenericContainer and `indep` as independent spline - */ + //! \name Evaluate third derivative to GenericContainer using another spline as independent + ///@{ + + //! + //! Evaluate all the splines at `zeta` and fill a map of values + //! in a GenericContainer and `indep` as independent spline + //! void eval2_DDD( real_type zeta, @@ -1062,11 +1152,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` values contained in vec - * and fill a map of vector in a GenericContainer - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in vec + //! and fill a map of vector in a GenericContainer + //! and `indep` as independent spline + //! void eval2_DDD( vec_real_type const & zetas, @@ -1074,11 +1164,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` and fill a map of values - * in a GenericContainer with keys in `columns` - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of values + //! in a GenericContainer with keys in `columns` + //! and `indep` as independent spline + //! void eval2_DDD( real_type zeta, @@ -1087,11 +1177,11 @@ namespace Splines { GenericContainer & vals ) const; - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` and `indep` as independent spline + //! void eval2_DDD( vec_real_type const & zetas, @@ -1099,11 +1189,15 @@ namespace Splines { vec_string_type const & columns, GenericContainer & vals ) const; + ///@} + + //! \name Evaluate third derivative to GenericContainer using another spline as independent + ///@{ - /*! - * Evaluate all the splines at `zeta` and fill a map - * of values in a GenericContainer and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map + //! of values in a GenericContainer and `indep` as independent spline + //! void eval2_DDD( real_type zeta, @@ -1113,11 +1207,11 @@ namespace Splines { this->eval2_DDD( zeta, this->getPosition(indep), vals ); } - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! and `indep` as independent spline + //! void eval2_DDD( vec_real_type const & zetas, @@ -1127,11 +1221,11 @@ namespace Splines { this->eval2_DDD( zetas, this->getPosition(indep), vals ); } - /*! - * Evaluate all the splines at `zeta` and fill a map of - * values in a GenericContainer with keys in `columns` - * and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of + //! values in a GenericContainer with keys in `columns` + //! and `indep` as independent spline + //! void eval2_DDD( real_type zeta, @@ -1142,11 +1236,11 @@ namespace Splines { this->eval2_DDD( zeta, this->getPosition(indep), columns, vals ); } - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` and `indep` as independent spline + //! void eval2_DDD( vec_real_type const & zetas, @@ -1157,18 +1251,23 @@ namespace Splines { this->eval2_DDD( zetas, this->getPosition(indep), columns, vals ); } + ///@} + + //! \name Build Spline + ///@{ + /////////////////////////////////////////////////////////////////////////// - /*! - * \brief Build a set of splines - * - * \param nspl the number of splines - * \param npts the number of points of each splines - * \param headers the names of the splines - * \param stype the type of each spline - * \param X pointer to X independent values - * \param Y vector of `nspl` pointers to Y depentendent values. - * \param Yp vector of `nspl` pointers to Y derivative depentendent values. - */ + //! + //! Build a set of splines + //! + //! \param nspl the number of splines + //! \param npts the number of points of each splines + //! \param headers the names of the splines + //! \param stype the type of each spline + //! \param X pointer to X independent values + //! \param Y vector of `nspl` pointers to Y depentendent values. + //! \param Yp vector of `nspl` pointers to Y derivative depentendent values. + //! void build( integer nspl, @@ -1187,6 +1286,8 @@ namespace Splines { build( GenericContainer const & gc ) { this->setup(gc); } + ///@} + //! Return spline type (as number) unsigned type() const diff --git a/src/SplineSetGC.cc b/src/SplineSetGC.cc index 51d67005..f1dd5889 100644 --- a/src/SplineSetGC.cc +++ b/src/SplineSetGC.cc @@ -32,20 +32,20 @@ namespace Splines { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - using GenericContainerNamespace::GC_INTEGER; - using GenericContainerNamespace::GC_VEC_BOOL; - using GenericContainerNamespace::GC_VEC_INTEGER; - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::GC_VEC_STRING; - using GenericContainerNamespace::GC_VECTOR; - using GenericContainerNamespace::GC_MAP; - using GenericContainerNamespace::GC_MAT_REAL; - using GenericContainerNamespace::mat_real_type; - using GenericContainerNamespace::vec_int_type; - using GenericContainerNamespace::vec_real_type; - using GenericContainerNamespace::vec_string_type; - using GenericContainerNamespace::vector_type; - using GenericContainerNamespace::map_type; + using GC_namespace::GC_INTEGER; + using GC_namespace::GC_VEC_BOOL; + using GC_namespace::GC_VEC_INTEGER; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::GC_VEC_STRING; + using GC_namespace::GC_VECTOR; + using GC_namespace::GC_MAP; + using GC_namespace::GC_MAT_REAL; + using GC_namespace::mat_real_type; + using GC_namespace::vec_int_type; + using GC_namespace::vec_real_type; + using GC_namespace::vec_string_type; + using GC_namespace::vector_type; + using GC_namespace::map_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -74,7 +74,7 @@ namespace Splines { m_nspl = integer(spline_type_vec.size()); stype.resize( size_t(m_nspl) ); for ( size_t spl = 0; spl < size_t(m_nspl); ++spl ) - stype[spl] = string_to_splineType( spline_type_vec[spl] ); + stype[spl] = string_to_splineType1D( spline_type_vec[spl] ); UTILS_ASSERT( gc.exists("xdata"), "{}, missing `xdata` field!\n", msg @@ -273,10 +273,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` and fill - * a map of values in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` and fill + //! a map of values in a GenericContainer + //! void SplineSet::eval( real_type x, GenericContainer & gc ) const { map_type & vals = gc.set_map(); @@ -286,10 +286,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` values contained in vec - * and fill a map of vector in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` values contained in vec + //! and fill a map of vector in a GenericContainer + //! void SplineSet::eval( vec_real_type const & vec, GenericContainer & gc ) const { integer npts = integer(vec.size()); @@ -302,10 +302,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` and fill a map of values - * in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` and fill a map of values + //! in a GenericContainer with keys in `columns` + //! void SplineSet::eval( real_type x, @@ -320,10 +320,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` values contained in vec - * and fill a map of vector in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` values contained in vec + //! and fill a map of vector in a GenericContainer with keys in `columns` + //! void SplineSet::eval( vec_real_type const & vec, @@ -340,10 +340,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` and fill a map of values - * in a GenericContainer and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of values + //! in a GenericContainer and `indep` as independent spline + //! void SplineSet::eval2( real_type zeta, @@ -359,11 +359,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` values contained in vec - * and fill a map of vector in a GenericContainer and `indep` - * as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in vec + //! and fill a map of vector in a GenericContainer and `indep` + //! as independent spline + //! void SplineSet::eval2( vec_real_type const & zetas, @@ -390,11 +390,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` and fill a map of values - * in a GenericContainer with keys in `columns` and `indep` - * as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of values + //! in a GenericContainer with keys in `columns` and `indep` + //! as independent spline + //! void SplineSet::eval2( real_type zeta, @@ -412,11 +412,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` values contained - * in vec and fill a map of vector in a GenericContainer - * with keys in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained + //! in vec and fill a map of vector in a GenericContainer + //! with keys in `columns` and `indep` as independent spline + //! void SplineSet::eval2( vec_real_type const & zetas, @@ -460,10 +460,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` values contained in vec and - * fill a map of vector in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` values contained in vec and + //! fill a map of vector in a GenericContainer + //! void SplineSet::eval_D( vec_real_type const & vec, GenericContainer & gc ) const { integer npts = integer(vec.size()); @@ -476,10 +476,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` and fill a map of values in - * a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` and fill a map of values in + //! a GenericContainer with keys in `columns` + //! void SplineSet::eval_D( real_type x, @@ -494,10 +494,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` values contained in vec - * and fill a map of vector in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` values contained in vec + //! and fill a map of vector in a GenericContainer with keys in `columns` + //! void SplineSet::eval_D( vec_real_type const & vec, @@ -514,10 +514,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` and fill a map of values - * in a GenericContainer and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of values + //! in a GenericContainer and `indep` as independent spline + //! void SplineSet::eval2_D( real_type zeta, @@ -533,11 +533,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` values contained in vec - * and fill a map of vector in a GenericContainer and `indep` - * as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in vec + //! and fill a map of vector in a GenericContainer and `indep` + //! as independent spline + //! void SplineSet::eval2_D( vec_real_type const & zetas, @@ -564,11 +564,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` and fill a map of values - * in a GenericContainer with keys in `columns` and `indep` - * as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of values + //! in a GenericContainer with keys in `columns` and `indep` + //! as independent spline + //! void SplineSet::eval2_D( real_type zeta, @@ -586,11 +586,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` values contained in vec - * and fill a map of vector in a GenericContainer with keys - * in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in vec + //! and fill a map of vector in a GenericContainer with keys + //! in `columns` and `indep` as independent spline + //! void SplineSet::eval2_D( vec_real_type const & zetas, @@ -633,10 +633,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` values contained in vec - * and fill a map of vector in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` values contained in vec + //! and fill a map of vector in a GenericContainer + //! void SplineSet::eval_DD( vec_real_type const & vec, GenericContainer & gc ) const { integer npts = integer(vec.size()); @@ -649,10 +649,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` and fill a map of values in - * a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` and fill a map of values in + //! a GenericContainer with keys in `columns` + //! void SplineSet::eval_DD( real_type x, @@ -667,10 +667,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` values contained in vec and - * fill a map of vector in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` values contained in vec and + //! fill a map of vector in a GenericContainer with keys in `columns` + //! void SplineSet::eval_DD( vec_real_type const & vec, @@ -687,10 +687,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` and fill a map of values - * in a GenericContainer and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of values + //! in a GenericContainer and `indep` as independent spline + //! void SplineSet::eval2_DD( real_type zeta, @@ -706,11 +706,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` values contained in vec - * and fill a map of vector in a GenericContainer and `indep` - * as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in vec + //! and fill a map of vector in a GenericContainer and `indep` + //! as independent spline + //! void SplineSet::eval2_DD( vec_real_type const & zetas, @@ -737,11 +737,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` and fill a map of values - * in a GenericContainer with keys in `columns` and `indep` - * as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of values + //! in a GenericContainer with keys in `columns` and `indep` + //! as independent spline + //! void SplineSet::eval2_DD( real_type zeta, @@ -759,11 +759,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` values contained in vec - * and fill a map of vector in a GenericContainer with keys - * in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in vec + //! and fill a map of vector in a GenericContainer with keys + //! in `columns` and `indep` as independent spline + //! void SplineSet::eval2_DD( vec_real_type const & zetas, @@ -807,10 +807,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` values contained in vec - * and fill a map of vector in a GenericContainer - */ + //! + //! Evaluate all the splines at `x` values contained in vec + //! and fill a map of vector in a GenericContainer + //! void SplineSet::eval_DDD( vec_real_type const & vec, @@ -826,10 +826,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` and fill a map of values - * in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` and fill a map of values + //! in a GenericContainer with keys in `columns` + //! void SplineSet::eval_DDD( real_type x, @@ -844,10 +844,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `x` values contained in vec and - * fill a map of vector in a GenericContainer with keys in `columns` - */ + //! + //! Evaluate all the splines at `x` values contained in vec and + //! fill a map of vector in a GenericContainer with keys in `columns` + //! void SplineSet::eval_DDD( vec_real_type const & vec, @@ -864,10 +864,10 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` and fill a map of values - * in a GenericContainer and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of values + //! in a GenericContainer and `indep` as independent spline + //! void SplineSet::eval2_DDD( real_type zeta, @@ -883,11 +883,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` values contained in vec - * and fill a map of vector in a GenericContainer and `indep` - * as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in vec + //! and fill a map of vector in a GenericContainer and `indep` + //! as independent spline + //! void SplineSet::eval2_DDD( vec_real_type const & zetas, @@ -914,11 +914,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` and fill a map of values - * in a GenericContainer with keys in `columns` and `indep` - * as independent spline - */ + //! + //! Evaluate all the splines at `zeta` and fill a map of values + //! in a GenericContainer with keys in `columns` and `indep` + //! as independent spline + //! void SplineSet::eval2_DDD( real_type zeta, @@ -936,11 +936,11 @@ namespace Splines { } } - /*! - * Evaluate all the splines at `zeta` values contained in vec - * and fill a map of vector in a GenericContainer with keys - * in `columns` and `indep` as independent spline - */ + //! + //! Evaluate all the splines at `zeta` values contained in vec + //! and fill a map of vector in a GenericContainer with keys + //! in `columns` and `indep` as independent spline + //! void SplineSet::eval2_DDD( vec_real_type const & zetas, diff --git a/src/SplineVec.cc b/src/SplineVec.cc index 313d3e69..9615e8f5 100644 --- a/src/SplineVec.cc +++ b/src/SplineVec.cc @@ -33,7 +33,7 @@ namespace Splines { using std::abs; using std::sqrt; - using GenericContainerNamespace::mat_real_type; + using GC_namespace::mat_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -487,9 +487,9 @@ namespace Splines { + 3 * x_1 * y_1 * ( t9 - t17 ) ) / ( t28 * t27 ); } - /*! - | Evaluate at `x` and fill a GenericContainer - */ + //! + //! Evaluate at `x` and fill a GenericContainer + //! void SplineVec::eval( vec_real_type const & x, diff --git a/src/SplineVec.hxx b/src/SplineVec.hxx index 9eb3f01c..50ff36dd 100644 --- a/src/SplineVec.hxx +++ b/src/SplineVec.hxx @@ -28,7 +28,9 @@ namespace Splines { + //! //! Splines Management Class + //! class SplineVec { SplineVec( SplineVec const & ) = delete; @@ -53,16 +55,14 @@ namespace Splines { mutable Utils::BinarySearch m_bs; void initLastInterval(); - - /////////////////////////////////////////////////////////////////////////// - void - allocate( integer dim, integer npts ); - - void - computeChords(); + void allocate( integer dim, integer npts ); + void computeChords(); public: + //! \name Constructors + ///@{ + //! spline constructor SplineVec( string const & name = "SplineVec" ); @@ -70,8 +70,20 @@ namespace Splines { virtual ~SplineVec(); + ///@} + + //! + //! Search the segment containing `x` + //! integer search( real_type & x ) const; + //! + //! Spline name usd in the constructor + //! + string const & name() const { return m_name; } + + //! \name Open/Close + ///@{ bool is_closed() const { return m_curve_is_closed; } void make_closed() { m_curve_is_closed = true; } void make_open() { m_curve_is_closed = false; } @@ -79,53 +91,69 @@ namespace Splines { bool can_extend() const { return m_curve_can_extend; } void make_unbounded() { m_curve_can_extend = true; } void make_buonded() { m_curve_can_extend = false; } + ///@} - string const & name() const { return m_name; } + //! \name Info + ///@{ + //! //! return the number of support points of the splines - integer - numPoints() const - { return m_npts; } + //! + integer numPoints() const { return m_npts; } + //! //! return the number splines in the spline set - integer - dimension() const - { return m_dim; } + //! + integer dimension() const { return m_dim; } + //! //! return the vector of values of x-nodes - real_type const * - xNodes() const - { return m_X; } + //! + real_type const * xNodes() const { return m_X; } + //! //! return the npt-th node of the spline (x component). - real_type - xNode( integer npt ) const - { return m_X[size_t(npt)]; } + //! + real_type xNode( integer npt ) const { return m_X[size_t(npt)]; } + //! //! return the npt-th node of the spline (y component). + //! real_type yNode( integer npt, integer j ) const { return m_Y[size_t(j)][size_t(npt)]; } + //! //! return x-minumum spline value - real_type - xMin() const - { return m_X[0]; } + //! + real_type xMin() const { return m_X[0]; } + //! //! return x-maximum spline value - real_type - xMax() const - { return m_X[size_t(m_npts-1)]; } + //! + real_type xMax() const { return m_X[size_t(m_npts-1)]; } + + ///@} + + //! \name Evaluate + ///@{ + //! //! Evaluate spline value + //! real_type operator () ( real_type x, integer i ) const; + //! + //! Evaluate spline value at segment `i` + //! real_type eval( real_type x, integer i ) const { return operator() (x,i); } + //! //! First derivative + //! real_type D( real_type x, integer i ) const; @@ -133,7 +161,9 @@ namespace Splines { eval_D( real_type x, integer i ) const { return this->D(x,i); } + //! //! Second derivative + //! real_type DD( real_type x, integer i ) const; @@ -141,7 +171,9 @@ namespace Splines { eval_DD( real_type x, integer i ) const { return this->DD(x,i); } + //! //! Third derivative + //! real_type DDD( real_type x, integer i ) const; @@ -149,7 +181,9 @@ namespace Splines { eval_DDD( real_type x, integer i ) const { return this->DDD(x,i); } + //! //! 4th derivative + //! real_type DDDD( real_type x, integer i ) const; @@ -157,7 +191,9 @@ namespace Splines { eval_DDDD( real_type x, integer i ) const { return this->DDDD(x,i); } + //! //! 5th derivative + //! real_type DDDDD( real_type x, integer i ) const; @@ -165,7 +201,9 @@ namespace Splines { eval_DDDDD( real_type x, integer i ) const { return this->DDDDD(x,i); } + //! //! Evaluate all the splines at `x` + //! void eval( real_type x, @@ -173,7 +211,9 @@ namespace Splines { integer inc ) const; + //! //! Evaluate the fist derivative of all the splines at `x` + //! void eval_D( real_type x, @@ -181,7 +221,9 @@ namespace Splines { integer inc ) const; + //! //! Evaluate the second derivative of all the splines at `x` + //! void eval_DD( real_type x, @@ -189,7 +231,9 @@ namespace Splines { integer inc ) const; + //! //! Evaluate the third derivative of all the splines at `x` + //! void eval_DDD( real_type x, @@ -197,7 +241,9 @@ namespace Splines { integer inc ) const; + //! //! Evaluate the 4th derivative of all the splines at `x` + //! void eval_DDDD( real_type x, @@ -205,7 +251,9 @@ namespace Splines { integer inc ) const; + //! //! Evaluate the 5th derivative of all the splines at `x` + //! void eval_DDDDD( real_type x, @@ -213,33 +261,39 @@ namespace Splines { integer inc ) const; + //! //! Evaluate all the splines at `x` - void - eval( real_type x, vector & vals ) const; + //! + void eval( real_type x, vector & vals ) const; + //! //! Evaluate the fist derivative of all the splines at `x` - void - eval_D( real_type x, vector & vals ) const; + //! + void eval_D( real_type x, vector & vals ) const; + //! //! Evaluate the second derivative of all the splines at `x` - void - eval_DD( real_type x, vector & vals ) const; + //! + void eval_DD( real_type x, vector & vals ) const; + //! //! Evaluate the third derivative of all the splines at `x` - void - eval_DDD( real_type x, vector & vals ) const; + //! + void eval_DDD( real_type x, vector & vals ) const; + //! //! Evaluate the 4th derivative of all the splines at `x` - void - eval_DDDD( real_type x, vector & vals ) const; + //! + void eval_DDDD( real_type x, vector & vals ) const; + //! //! Evaluate the 5th derivative of all the splines at `x` - void - eval_DDDDD( real_type x, vector & vals ) const; + //! + void eval_DDDDD( real_type x, vector & vals ) const; - /*! - | Evaluate at `x` and fill a GenericContainer - */ + //! + //! Evaluate at `x` and fill a GenericContainer + //! void eval( real_type x, GenericContainer & vals ) const { eval( x, vals.set_vec_real() ); } @@ -264,9 +318,9 @@ namespace Splines { eval_DDDDD( real_type x, GenericContainer & vals ) const { eval_DDDDD( x, vals.set_vec_real() ); } - /*! - | Evaluate at `x` and fill a GenericContainer - */ + //! + //! Evaluate at `x` (x is a vector with many values) and fill a GenericContainer + //! void eval( vec_real_type const & x, GenericContainer & vals ) const; @@ -284,7 +338,17 @@ namespace Splines { void eval_DDDDD( vec_real_type const & x, GenericContainer & vals ) const; + ///@} + + //! \name Setup Spline + ///@{ + //! + //! Initialize the interpolation point of the splines + //! \param[in] dim the dimension of the points + //! \param[in] npts the numeber of interpolation points + //! \param[in] Y the matrix of points values, `Y[i]` is the + //! pointer to the i-th components void setup( integer dim, @@ -292,6 +356,13 @@ namespace Splines { real_type const ** Y ); + //! + //! Initialize the interpolation point of the splines + //! \param[in] dim the dimension of the points + //! \param[in] npts the numeber of interpolation points + //! \param[in] Y the matrix of points values + //! \param[in] ldY leading dimension of the matrix + //! void setup( integer dim, @@ -300,43 +371,54 @@ namespace Splines { integer ldY ); - void - setKnots( real_type const * X ); + //! + //! Set the knots of the spline + //! + void setKnots( real_type const * X ); - void - setKnotsChordLength(); + //! + //! Computes the knots of the spline using chordal length + //! + void setKnotsChordLength(); - void - setKnotsCentripetal(); + //! + //! Computes the knots of the spline using centripetal approach + //! + void setKnotsCentripetal(); - void - setKnotsFoley(); + //! + //! Computes the knots of the spline using Foley algorithm + //! + void setKnotsFoley(); + + //! + //! Computes the spline using Catmull Rom algorithm. + //! Points and nodes must be previously stored. + //! + void CatmullRom(); void - CatmullRom(); + build( GenericContainer const & gc ) + { setup(gc); } - real_type - curvature( real_type x ) const; + ///@} - real_type - curvature_D( real_type x ) const; + //! + //! Compute spline curvature at `x` + //! + real_type curvature( real_type x ) const; - virtual - void - setup( GenericContainer const & gc ); + //! + //! Compute spline curvature derivative at `x` + //! + real_type curvature_D( real_type x ) const; - void - build( GenericContainer const & gc ) - { setup(gc); } + void setup( GenericContainer const & gc ); //! Return spline type (as number) - virtual - unsigned - type() const - { return SPLINE_VEC_TYPE; } + unsigned type() const { return SPLINE_VEC_TYPE; } - string - info() const; + string info() const; void info( ostream_type & stream ) const @@ -349,4 +431,4 @@ namespace Splines { } -// EOF: SplineSet.hxx +// EOF: SplineVec.hxx diff --git a/src/Splines.cc b/src/Splines.cc index afc5e26b..839d4dd6 100644 --- a/src/Splines.cc +++ b/src/Splines.cc @@ -181,18 +181,37 @@ namespace Splines { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + static char const * spline_type_2D[] = { + "bilinear", // 0 + "bicubic", // 1 + "biquintic", // 2 + "akima", // 3 + nullptr + }; + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + #ifndef DOXYGEN_SHOULD_SKIP_THIS SplineType1D - string_to_splineType( std::string const & nin ) { + string_to_splineType1D( std::string const & nin ) { std::string n = nin; std::transform(n.begin(), n.end(), n.begin(), ::tolower); for ( size_t j = 0; spline_type_1D[j] != nullptr; ++j ) { if ( spline_type_1D[j] == n ) return SplineType1D(j); } - throw std::runtime_error(fmt::format( "string_to_splineType({}) unknown type\n", n )); + throw std::runtime_error(fmt::format( "string_to_splineType1D({}) unknown type\n", n )); } + SplineType2D + string_to_splineType2D( std::string const & nin ) { + std::string n = nin; + std::transform(n.begin(), n.end(), n.begin(), ::tolower); + for ( size_t j = 0; spline_type_2D[j] != nullptr; ++j ) { + if ( spline_type_2D[j] == n ) return SplineType2D(j); + } + throw std::runtime_error(fmt::format( "string_to_splineType2D({}) unknown type\n", n )); + } #endif /*\ @@ -509,8 +528,8 @@ namespace Splines { // |_| |_| */ - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Splines.hh b/src/Splines.hh index e198ba2b..2935ce79 100644 --- a/src/Splines.hh +++ b/src/Splines.hh @@ -37,20 +37,6 @@ #include "SplinesConfig.hh" #include -/*! - \mainpage Splines - \author Enrico Bertolazzi (enrico.bertolazzi@unitn.it), homepage: http://www.ing.unitn.it/~bertolaz - \version 1.0.7 - \note first release Jan 12, 1998 - \date 2020 - \copyright see License.txt. - \par Affiliation: - Department of Industrial Engineering
                                                                                                                                        - University of Trento
                                                                                                                                        - Via Sommarive 9, I -- 38123 Trento, Italy
                                                                                                                                        - enrico.bertolazzi@unitn.it -*/ - namespace Splines { using std::vector; @@ -94,14 +80,15 @@ namespace Splines { extern char const *spline_type_1D[]; #ifndef DOXYGEN_SHOULD_SKIP_THIS - extern SplineType1D string_to_splineType( string const & n ); + extern SplineType1D string_to_splineType1D( string const & n ); + extern SplineType2D string_to_splineType2D( string const & n ); #endif - using GenericContainerNamespace::GenericContainer; - using GenericContainerNamespace::vec_real_type; - using GenericContainerNamespace::vec_string_type; - using GenericContainerNamespace::vector_type; - using GenericContainerNamespace::map_type; + using GC_namespace::GenericContainer; + using GC_namespace::vec_real_type; + using GC_namespace::vec_string_type; + using GC_namespace::vector_type; + using GC_namespace::map_type; /* // _ _ _ _ @@ -127,6 +114,83 @@ namespace Splines { #endif + //! + //! Convert polynomial defined using Hermite base + //! + //! \f[ p(x) = p_0 h_0(t) + p_1 h_1(t) + p'_0 h_2(t) + p'_1 h_3(t) \f] + //! + //! to standard form + //! + //! \f[ p(x) = A t^3 + B t^2 + C t + D \f] + //! + //! + static + inline + void + Hermite3toPoly( + real_type H, + real_type P0, + real_type P1, + real_type DP0, + real_type DP1, + real_type & A, + real_type & B, + real_type & C, + real_type & D + ) { + real_type H2 = H*H; + real_type P10 = P1-P0; + A = (DP0+DP1-2*P10/H)/H2; + B = (3*P10/H-(2*DP0+DP1))/H; + C = DP0; + D = P0; + } + + //! + //! Convert polynomial defined using Hermite base + //! + //! \f[ + //! p(x) = p_0 h_0(t) + p_1 h_1(t) + + //! p'_0 h_2(t) + p'_1 h_3(t) + + //! p''_0 h_4(t) + p''_1 h_5(t) + //! \f] + //! + //! to standard form + //! + //! \f[ p(x) = A t^5 + B t^4 + C t^3 + D t^2 + E t + F \f] + //! + //! + static + inline + void + Hermite5toPoly( + real_type h, + real_type P0, + real_type P1, + real_type DP0, + real_type DP1, + real_type DDP0, + real_type DDP1, + real_type & A, + real_type & B, + real_type & C, + real_type & D, + real_type & E, + real_type & F + ) { + real_type h2 = h*h; + real_type h3 = h*h2; + real_type P10 = P1-P0; + A = ( (DDP1-DDP0)/2+(6*P10/h-3*(DP0+DP1))/h)/h3; + B = ( (1.5*DDP0-DDP1)+ ((8*DP0+7*DP1)-15*P10/h)/h )/h2; + C = ( 0.5*DDP1-1.5*DDP0 + (10*P10/h -(6*DP0+4*DP1))/h )/h; + D = DDP0/2; + E = DP0; + F = P0; + } + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + /* // ____ _ _ _ // | __ )(_) (_)_ __ ___ __ _ _ __ @@ -170,16 +234,15 @@ namespace Splines { | \*/ - /*! - * Compute nodes for the spline using uniform distribution - * - * \param[in] dim dimension of the points - * \param[in] npts number of points - * \param[in] pnts matrix whose columns are the points - * \param[in] ld_pnts leading dimension of the matrix (fortran storage) - * \param[out] t vector of the computed nodes - * - */ + //! + //! Compute nodes for the spline using uniform distribution + //! + //! \param[in] dim dimension of the points + //! \param[in] npts number of points + //! \param[in] pnts matrix whose columns are the points + //! \param[in] ld_pnts leading dimension of the matrix (fortran storage) + //! \param[out] t vector of the computed nodes + //! void uniform( integer dim, @@ -189,16 +252,15 @@ namespace Splines { real_type * t ); - /*! - * Compute nodes for the spline using chordal distribution - * - * \param[in] dim dimension of the points - * \param[in] npts number of points - * \param[in] pnts matrix whose columns are the points - * \param[in] ld_pnts leading dimension of the matrix (fortran storage) - * \param[out] t vector of the computed nodes - * - */ + //! + //! Compute nodes for the spline using chordal distribution + //! + //! \param[in] dim dimension of the points + //! \param[in] npts number of points + //! \param[in] pnts matrix whose columns are the points + //! \param[in] ld_pnts leading dimension of the matrix (fortran storage) + //! \param[out] t vector of the computed nodes + //! void chordal( integer dim, @@ -208,17 +270,16 @@ namespace Splines { real_type * t ); - /*! - * Compute nodes for the spline using centripetal distribution - * - * \param[in] dim dimension of the points - * \param[in] npts number of points - * \param[in] pnts matrix whose columns are the points - * \param[in] ld_pnts leading dimension of the matrix (fortran storage) - * \param[in] alpha power factor - * \param[out] t vector of the computed nodes - * - */ + //! + //! Compute nodes for the spline using centripetal distribution + //! + //! \param[in] dim dimension of the points + //! \param[in] npts number of points + //! \param[in] pnts matrix whose columns are the points + //! \param[in] ld_pnts leading dimension of the matrix (fortran storage) + //! \param[in] alpha power factor + //! \param[out] t vector of the computed nodes + //! void centripetal( integer dim, @@ -229,16 +290,15 @@ namespace Splines { real_type * t ); - /*! - * Compute nodes for the spline using universal distribution - * - * \param[in] dim dimension of the points - * \param[in] npts number of points - * \param[in] pnts matrix whose columns are the points - * \param[in] ld_pnts leading dimension of the matrix (fortran storage) - * \param[out] t vector of the computed nodes - * - */ + //! + //! Compute nodes for the spline using universal distribution + //! + //! \param[in] dim dimension of the points + //! \param[in] npts number of points + //! \param[in] pnts matrix whose columns are the points + //! \param[in] ld_pnts leading dimension of the matrix (fortran storage) + //! \param[out] t vector of the computed nodes + //! void universal( integer dim, @@ -248,16 +308,15 @@ namespace Splines { real_type * t ); - /*! - * Compute nodes for the spline using ``FoleyNielsen`` distribution - * - * \param[in] dim dimension of the points - * \param[in] npts number of points - * \param[in] pnts matrix whose columns are the points - * \param[in] ld_pnts leading dimension of the matrix (fortran storage) - * \param[out] t vector of the computed nodes - * - */ + //! + //! Compute nodes for the spline using `FoleyNielsen` distribution + //! + //! \param[in] dim dimension of the points + //! \param[in] npts number of points + //! \param[in] pnts matrix whose columns are the points + //! \param[in] ld_pnts leading dimension of the matrix (fortran storage) + //! \param[out] t vector of the computed nodes + //! void FoleyNielsen( integer dim, @@ -267,16 +326,15 @@ namespace Splines { real_type * t ); - /*! - * Compute nodes for the spline using ``FangHung`` distribution - * - * \param[in] dim dimension of the points - * \param[in] npts number of points - * \param[in] pnts matrix whose columns are the points - * \param[in] ld_pnts leading dimension of the matrix (fortran storage) - * \param[out] t vector of the computed nodes - * - */ + //! + //! Compute nodes for the spline using `FangHung` distribution + //! + //! \param[in] dim dimension of the points + //! \param[in] npts number of points + //! \param[in] pnts matrix whose columns are the points + //! \param[in] ld_pnts leading dimension of the matrix (fortran storage) + //! \param[out] t vector of the computed nodes + //! void FangHung( integer dim, @@ -294,7 +352,9 @@ namespace Splines { | |____/| .__/|_|_|_| |_|\___| | |_| \*/ + //! //! Spline Management Class + //! class Spline { friend class SplineSet; protected: @@ -318,7 +378,12 @@ namespace Splines { public: + //! \name Constructors + ///@{ + + //! //! spline constructor + //! Spline( string const & name = "Spline" ) : m_name(name) , m_curve_is_closed(false) @@ -331,20 +396,27 @@ namespace Splines { { this->initLastInterval(); } + + //! //! spline destructor + //! virtual ~Spline() {} - //! find interval containing ``x`` using binary search. + ///@} + + //! + //! Find interval containing `x` using binary search. + //! integer search( real_type & x ) const; - /*! - * \name Spline Data Info - */ - //@{ + //! \name Open/Close + ///@{ - //! return the name of the spline used in the constructor + //! + //! Return the name of the spline used in the constructor + //! string const & name() const { return m_name; } bool is_closed() const { return m_curve_is_closed; } @@ -359,34 +431,59 @@ namespace Splines { void make_extended_constant() { m_curve_extended_constant = true; } void make_extended_not_constant() { m_curve_extended_constant = false; } - //! return the number of support points of the spline. + ///@} + + //! \name Spline Data Info + ///@{ + + //! + //! the number of support points of the spline. + //! integer numPoints() const { return m_npts; } - //! return the i-th node of the spline (x component). + //! + //! the i-th node of the spline (x component). + //! real_type xNode( integer i ) const { return m_X[size_t(i)]; } - //! return the i-th node of the spline (y component). + //! + //! the i-th node of the spline (y component). + //! real_type yNode( integer i ) const { return m_Y[size_t(i)]; } - //! return first node of the spline (x component). + //! + //! first node of the spline (x component). + //! real_type xBegin() const { return m_X[0]; } - //! return first node of the spline (y component). + //! + //! first node of the spline (y component). + //! real_type yBegin() const { return m_Y[0]; } - //! return last node of the spline (x component). + //! + //! last node of the spline (x component). + //! real_type xEnd() const { return m_X[size_t(m_npts-1)]; } - //! return last node of the spline (y component). + //! + //! last node of the spline (y component). + //! real_type yEnd() const { return m_Y[size_t(m_npts-1)]; } - //! return x-minumum spline value + //! + //! x-minumum spline value + //! real_type xMin() const { return m_X[0]; } - //! return x-maximum spline value + //! + //! x-maximum spline value + //! real_type xMax() const { return m_X[m_npts-1]; } - //! return y-minumum spline value + //! + //! y-minumum spline value + //! real_type yMin() const { integer N = m_npts; @@ -394,7 +491,9 @@ namespace Splines { return *std::min_element(m_Y,m_Y+N); } + //! //! return y-maximum spline value + //! real_type yMax() const { integer N = m_npts; @@ -402,36 +501,56 @@ namespace Splines { return *std::max_element(m_Y,m_Y+N); } - /////////////////////////////////////////////////////////////////////////// - //! change X-origin of the spline - void setOrigin( real_type x0 ); - - //! change X-range of the spline - void setRange( real_type xmin, real_type xmax ); + //! + //! Search the max and min values of `y` along the spline + //! with the corresponding `x` position + //! + //! \param[out] i_min_pos interval where is the minimum + //! \param[out] x_min_pos where is the minimum + //! \param[out] y_min the minimum value + //! \param[out] i_max_pos interval where is the maximum + //! \param[out] x_max_pos where is the maximum + //! \param[out] y_max the maximum value + //! + virtual + void + y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const { + i_min_pos = i_max_pos = 0; + x_min_pos = y_min = x_max_pos = y_max = 0; + UTILS_ERROR( + "In spline: {} y_min_max not implemented\n", + info() + ); + } - //@} + ///@} - /*! - * \name Build - */ - //@{ + //! \name Build + ///@{ - /*! - * Build a spline using a generic container. - */ + //! + //! Build a spline using a generic container. + //! void build( GenericContainer const & gc ) { setup(gc); } - /*! - * \brief Build a spline. - * - * \param x vector of x-coordinates - * \param incx access elements as x[0], x[incx], x[2*incx],... - * \param y vector of y-coordinates - * \param incy access elements as y[0], y[incy], y[2*incy],... - * \param n total number of points - */ + //! + //! Build a spline. + //! + //! \param x vector of x-coordinates + //! \param incx access elements as x[0], x[incx], x[2*incx],... + //! \param y vector of y-coordinates + //! \param incy access elements as y[0], y[incy], y[2*incy],... + //! \param n total number of points + //! virtual void build( @@ -440,13 +559,13 @@ namespace Splines { integer n ); - /*! - * \brief Build a spline. - * - * \param x vector of x-coordinates - * \param y vector of y-coordinates - * \param n total number of points - */ + //! + //! Build a spline. + //! + //! \param x vector of x-coordinates + //! \param y vector of y-coordinates + //! \param n total number of points + //! inline void build( @@ -456,12 +575,12 @@ namespace Splines { ) { this->build( x, 1, y, 1, n ); } - /*! - * \brief Build a spline. - * - * \param x vector of x-coordinates - * \param y vector of y-coordinates - */ + //! + //! Build a spline. + //! + //! \param x vector of x-coordinates + //! \param y vector of y-coordinates + //! inline void build( vector const & x, vector const & y ) { @@ -470,50 +589,69 @@ namespace Splines { this->build( &x.front(), 1, &y.front(), 1, N ); } - /*! - * Build a spline using internal stored data - */ + //! + //! Build a spline using internal stored data + //! virtual void build() = 0; - /*! - * Build a spline using a generic container. - */ + //! + //! Setup a spline using a `GenericContainer` + //! + //! - gc("xdata") vector with the `x` coordinate of the data + //! - gc("ydata") vector with the `y` coordinate of the data + //! virtual void setup( GenericContainer const & gc ); - //@} + ///@} - /*! - * \name Incremental Build - * - * Various constructors for the spline class. - * - */ - //@{ + //! \name Incremental Build + ///@{ + //! //! Allocate memory for `npts` points - virtual - void reserve( integer npts ) = 0; + //! + virtual void reserve( integer npts ) = 0; + //! //! Add a support point (x,y) to the spline. + //! void pushBack( real_type x, real_type y ); + //! //! Drop last inserted point of the spline. + //! void dropBack() { if ( m_npts > 0 ) --m_npts; } - //! Cancel the support points, empty the spline. - virtual - void clear() = 0; + //! + //! Delete the support points, empty the spline. + //! + virtual void clear() = 0; + + ///@} + + //! \name Manipulate + ///@{ - //@} + //! + //! change X-origin of the spline + //! + void setOrigin( real_type x0 ); + + //! + //! change X-range of the spline + //! + void setRange( real_type xmin, real_type xmax ); - /*! - * \name Dump Data - */ - //@{ + ///@} + //! \name Dump Data + ///@{ + + //! //! dump a sample of the spline + //! void dump( ostream_type & s, @@ -521,7 +659,9 @@ namespace Splines { char const * header = "x\ty" ) const; + //! //! dump a sample of the spline + //! void dump( char const * fname, @@ -533,42 +673,49 @@ namespace Splines { file.close(); } + //! //! Print spline coefficients - virtual - void writeToStream( ostream_type & s ) const = 0; + //! + virtual void writeToStream( ostream_type & s ) const = 0; - //@} + ///@} - /*! - * \name Evaluation - */ - //@{ + //! \name Evaluation + ///@{ + //! //! Evaluate spline value - virtual - real_type operator () ( real_type x ) const = 0; + //! + virtual real_type operator () ( real_type x ) const = 0; + //! //! First derivative - virtual - real_type D( real_type x ) const = 0; + //! + virtual real_type D( real_type x ) const = 0; + //! //! Second derivative - virtual - real_type DD( real_type x ) const = 0; + //! + virtual real_type DD( real_type x ) const = 0; + //! //! Third derivative - virtual - real_type DDD( real_type x ) const = 0; + //! + virtual real_type DDD( real_type x ) const = 0; + //! //! 4th derivative - virtual - real_type DDDD( real_type ) const { return real_type(0); } + //! + virtual real_type DDDD( real_type ) const { return real_type(0); } - //! 4th derivative - virtual - real_type DDDDD( real_type ) const { return real_type(0); } + //! + //! 5th derivative + //! + virtual real_type DDDDD( real_type ) const { return real_type(0); } + //! //! Some aliases + //! real_type eval( real_type x ) const { return (*this)(x); } real_type eval_D( real_type x ) const { return this->D(x); } real_type eval_DD( real_type x ) const { return this->DD(x); } @@ -576,39 +723,44 @@ namespace Splines { real_type eval_DDDD( real_type x ) const { return this->DDDD(x); } real_type eval_DDDDD( real_type x ) const { return this->DDDDD(x); } - /////////////////////////////////////////////////////////////////////////// + //! //! Evaluate spline value when interval is known - virtual - real_type id_eval( integer ni, real_type x ) const = 0; + //! + virtual real_type id_eval( integer ni, real_type x ) const = 0; + //! //! First derivative - virtual - real_type id_D( integer ni, real_type x ) const = 0; + //! + virtual real_type id_D( integer ni, real_type x ) const = 0; + //! //! Second derivative - virtual - real_type id_DD( integer ni, real_type x ) const = 0; + //! + virtual real_type id_DD( integer ni, real_type x ) const = 0; + //! //! Third derivative - virtual - real_type id_DDD( integer ni, real_type x ) const = 0; + //! + virtual real_type id_DDD( integer ni, real_type x ) const = 0; + //! //! 4th derivative - virtual - real_type id_DDDD( integer, real_type ) const { return real_type(0); } + //! + virtual real_type id_DDDD( integer, real_type ) const { return real_type(0); } - //! 4th derivative - virtual - real_type id_DDDDD( integer, real_type ) const { return real_type(0); } + //! + //! 5th derivative + //! + virtual real_type id_DDDDD( integer, real_type ) const { return real_type(0); } - //@} + ///@} - /*! - * \name Get Info - */ - //@{ + //! \name Get Info + ///@{ + //! //! get the piecewise polinomials of the spline + //! virtual integer // order coeffs( @@ -617,39 +769,51 @@ namespace Splines { bool transpose = false ) const = 0; - virtual - integer - order() const = 0; - //! Return spline typename + //! + //! Spline order of the piecewise polynomial + //! + virtual integer order() const = 0; + + //! + //! spline type returned as a string + //! char const * type_name() const { return Splines::spline_type_1D[type()]; } - //! Return spline type (as number) - virtual - unsigned type() const = 0; + //! + //! spline type returned as integer + //! + virtual unsigned type() const = 0; - //! Return a string information of the kind and order of the spline + //! + //! String information of the kind and order of the spline + //! string info() const; + //! //! Print information of the kind and order of the spline + //! void info( ostream_type & stream ) const { stream << this->info() << '\n'; } - //@} + ///@} }; + //! //! compute curvature of a planar curve - real_type - curvature( real_type s, Spline const & X, Spline const & Y ); + //! + real_type curvature( real_type s, Spline const & X, Spline const & Y ); + //! //! compute curvature derivative of a planar curve - real_type - curvature_D( real_type s, Spline const & X, Spline const & Y ); + //! + real_type curvature_D( real_type s, Spline const & X, Spline const & Y ); + //! //! compute curvature second derivative of a planar curve - real_type - curvature_DD( real_type s, Spline const & X, Spline const & Y ); + //! + real_type curvature_DD( real_type s, Spline const & X, Spline const & Y ); /*\ | ____ _ _ ____ _ _ ____ @@ -659,7 +823,9 @@ namespace Splines { | \____\__,_|_.__/|_|\___| |____/| .__/|_|_|_| |_|\___| |____/ \__,_|___/\___| | |_| \*/ + //! //! cubic spline base class + //! class CubicSplineBase : public Spline { protected: Utils::Malloc m_baseValue; @@ -673,7 +839,9 @@ namespace Splines { using Spline::build; #endif - //! spline constructor + //! + //! Spline constructor. + //! CubicSplineBase( string const & name = "CubicSplineBase" ) : Spline(name) , m_baseValue(name+"_memory") @@ -686,16 +854,22 @@ namespace Splines { void copySpline( CubicSplineBase const & S ); - //! return the i-th node of the spline (y' component). + //! + //! Return the i-th node of the spline (y' component). + //! real_type ypNode( integer i ) const { return m_Yp[size_t(i)]; } - //! change X-range of the spline + //! + //! Change X-range of the spline. + //! void setRange( real_type xmin, real_type xmax ); - //! Use externally allocated memory for `npts` points + //! + //! Use externally allocated memory for `npts` points. + //! void reserve_external( integer n, @@ -704,6 +878,16 @@ namespace Splines { real_type * & p_dy ); + void + y_min_max( + integer & i_min_pos, + real_type & x_min_pos, + real_type & y_min, + integer & i_max_pos, + real_type & x_max_pos, + real_type & y_max + ) const override; + // --------------------------- VIRTUALS ----------------------------------- real_type operator () ( real_type x ) const override; @@ -721,18 +905,17 @@ namespace Splines { void reserve( integer npts ) override; - /*! - * \brief Build a spline. - * - * \param x vector of x-coordinates - * \param incx access elements as x[0], x[incx], x[2*incx],... - * \param y vector of y-coordinates - * \param incy access elements as y[0], y[incy], y[2*incy],... - * \param yp vector of y-defivative - * \param incyp access elements as yp[0], yp[incyp], yp[2*incyy],... - * \param n total number of points - */ - // must be defined in derived classes + //! + //! Build a spline. + //! + //! \param[in] x vector of x-coordinates + //! \param[in] incx access elements as x[0], x[incx], x[2*incx],... + //! \param[in] y vector of y-coordinates + //! \param[in] incy access elements as y[0], y[incy], y[2*incy],... + //! \param[in] yp vector of y-defivative + //! \param[in] incyp access elements as yp[0], yp[incyp], yp[2*incyy],... + //! \param[in] n total number of points + //! void build( real_type const * x, integer incx, @@ -741,14 +924,14 @@ namespace Splines { integer n ); - /*! - * \brief Build a spline. - * - * \param x vector of x-coordinates - * \param y vector of y-coordinates - * \param yp vector of y'-coordinates - * \param n total number of points - */ + //! + //! Build a spline. + //! + //! \param[in] x vector of x-coordinates + //! \param[in] y vector of y-coordinates + //! \param[in] yp vector of y'-coordinates + //! \param[in] n total number of points + //! inline void build( @@ -760,13 +943,13 @@ namespace Splines { this->build( x, 1, y, 1, yp, 1, n ); } - /*! - * \brief Build a spline. - * - * \param x vector of x-coordinates - * \param y vector of y-coordinates - * \param yp vector of y'-coordinates - */ + //! + //! Build a spline. + //! + //! \param[in] x vector of x-coordinates + //! \param[in] y vector of y-coordinates + //! \param[in] yp vector of y'-coordinates + //! void build( vector const & x, @@ -774,10 +957,8 @@ namespace Splines { vector const & yp ); - //! Cancel the support points, empty the spline. void clear() override; - //! get the piecewise polinomials of the spline integer // order coeffs( real_type * const cfs, @@ -797,7 +978,10 @@ namespace Splines { | |____/| .__/|_|_|_| |_|\___|____/ \__,_|_| |_| | |_| \*/ + + //! //! Spline Management Class + //! class SplineSurf { SplineSurf( SplineSurf const & ) = delete; // block copy constructor @@ -849,9 +1033,19 @@ namespace Splines { virtual void makeSpline() = 0; + void + load_Z( + real_type const * z, + integer ldZ, + bool fortran_storage, + bool transposed + ); + public: - //! spline constructor + //! + //! Spline constructor + //! SplineSurf( string const & name = "Spline" ) : m_mem("SplineSurf") , m_name(name) @@ -871,81 +1065,141 @@ namespace Splines { this->initLastInterval_y(); } - //! spline destructor + //! + //! Spline destructor + //! virtual ~SplineSurf(); + //! + //! Return `true` if the surface is assumed closed in the `x` direction. + //! bool is_x_closed() const { return m_x_closed; } - void make_x_closed() { m_x_closed = true; } - void make_x_opened() { m_x_closed = false; } + //! + //! Setup the surface as closed in the `x` direction. + //! + void make_x_closed() { m_x_closed = true; } + + //! + //! Setup the surface as open in the `x` direction. + //! + void make_x_opened() { m_x_closed = false; } + + //! + //! Return `true` if the surface is assumed closed in the `y` direction. + //! bool is_y_closed() const { return m_y_closed; } - void make_y_closed() { m_y_closed = true; } - void make_y_opened() { m_y_closed = false; } + //! + //! Setup the surface as closed in the `y` direction. + //! + void make_y_closed() { m_y_closed = true; } + + //! + //! Setup the surface as open in the `y` direction. + //! + void make_y_opened() { m_y_closed = false; } + + //! + //! Return `true` if the parameter `x` assumed bounded. + //! If false the spline is estrapolated for `x` values + //! outside the range. + //! bool is_x_bounded() const { return m_x_can_extend; } - void make_x_unbounded() { m_x_can_extend = true; } - void make_x_bounded() { m_x_can_extend = false; } + //! + //! Make the spline surface unbounded in the `x` direction. + //! + void make_x_unbounded() { m_x_can_extend = true; } + + //! + //! Make the spline surface bounded in the `x` direction. + //! + void make_x_bounded() { m_x_can_extend = false; } + + //! + //! Return `true` if the parameter `y` assumed bounded. + //! If false the spline is extrapolated for `y` values + //! outside the range. + //! bool is_y_bounded() const { return m_y_can_extend; } - void make_y_unbounded() { m_y_can_extend = true; } - void make_y_bounded() { m_y_can_extend = false; } + + //! + //! Make the spline surface unbounded in the `y` direction + //! + void make_y_unbounded() { m_y_can_extend = true; } + + //! + //! Make the spline surface bounded in the `x` direction. + //! + void make_y_bounded() { m_y_can_extend = false; } string const & name() const { return m_name; } + //! //! Cancel the support points, empty the spline. + //! void clear(); - //! return the number of support points of the spline along x direction + //! + //! Return the number of support points of the spline along x direction. + //! integer numPointX() const { return m_nx; } - //! return the number of support points of the spline along y direction + //! + //! Return the number of support points of the spline along y direction. + //! integer numPointY() const { return m_ny; } - //! return the i-th node of the spline (x component). + //! + //! Return the i-th node of the spline (x component). + //! real_type xNode( integer i ) const { return m_X[size_t(i)]; } - //! return the i-th node of the spline (y component). + //! + //! Return the i-th node of the spline (y component). + //! real_type yNode( integer i ) const { return m_Y[size_t(i)]; } - //! return the i-th node of the spline (y component). + //! + //! Return the i-th node of the spline (y component). + //! real_type zNode( integer i, integer j ) const { return m_Z[size_t(this->ipos_C(i,j))]; } - //! return x-minumum spline value + //! + //! Return x-minumum spline value. + //! real_type xMin() const { return m_X[0]; } - //! return x-maximum spline value + //! + //! Return x-maximum spline value. + //! real_type xMax() const { return m_X[m_nx-1]; } - //! return y-minumum spline value + //! + //! Return y-minumum spline value. + //! real_type yMin() const { return m_Y[0]; } - //! return y-maximum spline value + //! + //! Return y-maximum spline value. + //! real_type yMax() const { return m_Y[m_ny-1]; } - //! return z-minumum spline value + //! + //! Return z-minumum spline value. + //! real_type zMin() const { return m_Z_min; } - //! return z-maximum spline value + //! + //! Return z-maximum spline value. + //! real_type zMax() const { return m_Z_max; } /////////////////////////////////////////////////////////////////////////// - /*! Build surface spline - * \param x vector of x-coordinates - * \param incx access elements as x[0], x[incx], x[2*incx],... - * \param y vector of y-coordinates - * \param incy access elements as y[0], y[incy], x[2*incy],... - * \param z matrix of z-values - * \param ldZ leading dimension of the matrix. Elements are stored - * by row Z(i,j) = z[i*ldZ+j] as C-matrix - * \param nx total number of points in direction x - * \param ny total number of points in direction y - * \param fortran_storage if true elements are stored by column - * i.e. Z(i,j) = z[i+j*ldZ] as Fortran-matrix - * \param transposed if true matrix Z is stored transposed - */ void build( real_type const * x, integer incx, @@ -956,15 +1210,17 @@ namespace Splines { bool transposed = false ); - /*! Build surface spline - * \param x vector of x-coordinates, nx = x.size() - * \param y vector of y-coordinates, ny = y.size() - * \param z matrix of z-values. Elements are stored - * by row Z(i,j) = z[i*ny+j] as C-matrix - * \param fortran_storage if true elements are stored by column - * i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix - * \param transposed if true matrix Z is stored transposed - */ + //! + //! Build surface spline + //! + //! \param x vector of x-coordinates, nx = x.size() + //! \param y vector of y-coordinates, ny = y.size() + //! \param z matrix of z-values. Elements are stored + //! by row Z(i,j) = z[i*ny+j] as C-matrix + //! \param fortran_storage if true elements are stored by column + //! i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix + //! \param transposed if true matrix Z is stored transposed + //! void build( vector const & x, @@ -984,19 +1240,6 @@ namespace Splines { ); } - /*! - * \brief Build surface spline - * - * \param z matrix of z-values. Elements are stored - * by row Z(i,j) = z[i*ny+j] as C-matrix - * \param ldZ leading dimension of the matrix. Elements are stored - * by row Z(i,j) = z[i*ldZ+j] as C-matrix - * \param nx x-dimension - * \param ny y-dimension - * \param fortran_storage if true elements are stored by column - * i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix - * \param transposed if true matrix Z is stored transposed - */ void build( real_type const * z, @@ -1007,19 +1250,19 @@ namespace Splines { bool transposed = false ); - /*! - * \brief Build surface spline - * - * \param z matrix of z-values. Elements are stored - * by row Z(i,j) = z[i*ny+j] as C-matrix. - * ldZ leading dimension of the matrix is ny for C-storage - * and nx for Fortran storage. - * \param nx x-dimension - * \param ny y-dimension - * \param fortran_storage if true elements are stored by column - * i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix - * \param transposed if true matrix Z is stored transposed - */ + //! + //! Build surface spline + //! + //! \param z matrix of z-values. Elements are stored + //! by row Z(i,j) = z[i*ny+j] as C-matrix. + //! ldZ leading dimension of the matrix is ny for C-storage + //! and nx for Fortran storage. + //! \param nx x-dimension + //! \param ny y-dimension + //! \param fortran_storage if true elements are stored by column + //! i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix + //! \param transposed if true matrix Z is stored transposed + //! void build( vector const & z, @@ -1028,126 +1271,156 @@ namespace Splines { bool fortran_storage = false, bool transposed = false ) { - if ( fortran_storage ) - this->build( &z.front(), nx, nx, ny, fortran_storage, transposed ); - else - this->build( &z.front(), ny, nx, ny, fortran_storage, transposed ); + this->build( &z.front(), nx, ny, fortran_storage ? nx : ny, fortran_storage, transposed ); } void setup( GenericContainer const & gc ); void - build ( GenericContainer const & gc ) + build( GenericContainer const & gc ) { setup(gc); } - //! Evaluate spline value at point \f$ (x,y) \f$ + //! + //! Evaluate spline value at point \f$ (x,y) \f$. + //! virtual real_type operator () ( real_type x, real_type y ) const = 0; - /*! - * value and first derivatives at point \f$ (x,y) \f$ - * - d[0] value of the spline \f$ S(x,y) \f$ - * - d[1] derivative respect to \f$ x \f$ of the spline: \f$ S_x(x,y) \f$ - * - d[2] derivative respect to \f$ y \f$ of the spline: \f$ S_y(x,y) \f$ - */ + //! + //! Value and first derivatives at point \f$ (x,y) \f$: + //! + //! - d[0] value of the spline \f$ S(x,y) \f$ + //! - d[1] derivative respect to \f$ x \f$ of the spline: \f$ S_x(x,y) \f$ + //! - d[2] derivative respect to \f$ y \f$ of the spline: \f$ S_y(x,y) \f$ + //! virtual void D( real_type x, real_type y, real_type d[3] ) const = 0; - /*! - * first derivatives respect to \f$ x \f$ at point \f$ (x,y) \f$ of the spline: \f$ S_x(x,y) \f$ - */ + //! + //! First derivatives respect to \f$ x \f$ at point \f$ (x,y) \f$ + //! of the spline: \f$ S_x(x,y) \f$. + //! virtual real_type Dx( real_type x, real_type y ) const = 0; - /*! - * first derivatives respect to \f$ y \f$ at point \f$ (x,y) \f$ of the spline: \f$ S_y(x,y) \f$ - */ + //! + //! First derivatives respect to \f$ y \f$ at point \f$ (x,y) \f$ + //! of the spline: \f$ S_y(x,y) \f$. + //! virtual real_type Dy( real_type x, real_type y ) const = 0; - /*! - * value, first and second derivatives at point \f$ (x,y) \f$ - * - d[0] value of the spline \f$ S(x,y) \f$ - * - d[1] derivative respect to \f$ x \f$ of the spline: \f$ S_x(x,y) \f$ - * - d[2] derivative respect to \f$ y \f$ of the spline: \f$ S_y(x,y) \f$ - * - d[3] second derivative respect to \f$ x \f$ of the spline: \f$ S_{xx}(x,y) \f$ - * - d[4] mixed second derivative: \f$ S_{xy}(x,y) \f$ - * - d[5] second derivative respect to \f$ y \f$ of the spline: \f$ S_{yy}(x,y) \f$ - */ + //! + //! Value, first and second derivatives at point \f$ (x,y) \f$: + //! + //! - dd[0] value of the spline \f$ S(x,y) \f$ + //! - dd[1] derivative respect to \f$ x \f$ of the spline: \f$ S_x(x,y) \f$ + //! - dd[2] derivative respect to \f$ y \f$ of the spline: \f$ S_y(x,y) \f$ + //! - dd[3] second derivative respect to \f$ x \f$ of the spline: \f$ S_{xx}(x,y) \f$ + //! - dd[4] mixed second derivative: \f$ S_{xy}(x,y) \f$ + //! - dd[5] second derivative respect to \f$ y \f$ of the spline: \f$ S_{yy}(x,y) \f$ + //! virtual void DD( real_type x, real_type y, real_type dd[6] ) const = 0; - /*! - * second derivatives respect to \f$ x \f$ at point \f$ (x,y) \f$ of the spline: \f$ S_{xx}(x,y) \f$ - */ + //! + //! Second derivatives respect to \f$ x \f$ at point \f$ (x,y) \f$ + //! of the spline: \f$ S_{xx}(x,y) \f$. + //! virtual real_type Dxx( real_type x, real_type y ) const = 0; - /*! - * mixed second derivatives: \f$ S_{xy}(x,y) \f$ - */ + //! + //! Mixed second derivatives: \f$ S_{xy}(x,y) \f$. + //! virtual real_type Dxy( real_type x, real_type y ) const = 0; - /*! - * second derivatives respect to \f$ y \f$ at point \f$ (x,y) \f$ of the spline: \f$ S_{yy}(x,y) \f$ - */ + //! + //! Second derivatives respect to \f$ y \f$ at point \f$ (x,y) \f$ + //! of the spline: \f$ S_{yy}(x,y) \f$. + //! virtual real_type Dyy( real_type x, real_type y ) const = 0; - //! Evaluate spline value at point \f$ (x,y) \f$ + //! + //! Evaluate spline value at point \f$ (x,y) \f$. + //! real_type eval( real_type x, real_type y ) const { return (*this)(x,y); } - //! Alias for ``Dx(x,y)`` + //! + //! Alias for `Dx(x,y)` + //! real_type eval_D_1( real_type x, real_type y ) const { return this->Dx(x,y); } - //! Alias for ``Dy(x,y)`` + //! + //! Alias for `Dy(x,y)` + //! real_type eval_D_2( real_type x, real_type y ) const { return this->Dy(x,y); } - //! Alias for ``Dxx(x,y)`` + //! + //! Alias for `Dxx(x,y)` + //! real_type eval_D_1_1( real_type x, real_type y ) const { return this->Dxx(x,y); } - //! Alias for ``Dxy(x,y)`` + //! + //! Alias for `Dxy(x,y)` + //! real_type eval_D_1_2( real_type x, real_type y ) const { return this->Dxy(x,y); } - //! Alias for ``Dyy(x,y)`` + //! + //! Alias for `Dyy(x,y)` + //! real_type eval_D_2_2( real_type x, real_type y ) const { return this->Dyy(x,y); } - //! Print spline coefficients + //! + //! Print spline coefficients. + //! virtual void writeToStream( ostream_type & s ) const = 0; - //! Return spline typename + //! + //! Return spline type as a string pointer. + //! virtual char const * type_name() const = 0; - //! return a string with information about the spline. + //! + //! Return a string with information about the spline. + //! virtual string info() const; + //! //! write a string with information about the spline. + //! void info( ostream_type & stream ) const { stream << this->info() << '\n'; } + //! + //! Print stored data x, y, and matrix z. + //! + void dump_data( ostream_type & s ) const; + }; } diff --git a/src/Splines1D.cc b/src/Splines1D.cc index 0d727901..6133c2f9 100644 --- a/src/Splines1D.cc +++ b/src/Splines1D.cc @@ -68,11 +68,23 @@ namespace Splines { // |_| |_| */ - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::vec_real_type; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::vec_real_type; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + //! + //! Setup a spline using a `GenericContainer` + //! + //! - gc("spline_type") + //! - "constant" + //! - "linear" + //! - "cubic" + //! - "akima" + //! - "bessel" + //! - "pchip" + //! - "quintic" + //! void Spline1D::setup( GenericContainer const & gc ) { /* diff --git a/src/Splines1D.hxx b/src/Splines1D.hxx index 877d6a2b..4498d7a5 100644 --- a/src/Splines1D.hxx +++ b/src/Splines1D.hxx @@ -41,16 +41,25 @@ namespace Splines { public: - //! spline constructor + //! \name Constructors + ///@{ + + //! + //! Spline constructor + //! Spline1D( std::string const & n ) : m_name(n) , m_pSpline(nullptr) {} - //! spline destructor + //! + //! Spline destructor + //! ~Spline1D() {} + ///@} + string const & name() const { return m_pSpline->name(); } bool is_closed() const { return m_pSpline->is_closed(); } @@ -61,53 +70,75 @@ namespace Splines { void make_unbounded() { m_pSpline->make_unbounded(); } void make_bounded() { m_pSpline->make_bounded(); } - //! return the number of support points of the spline. + //! + //! Return the number of support points of the spline. + //! integer numPoints() const { return m_pSpline->numPoints(); } - //! return the i-th node of the spline (x component). + //! + //! Return the i-th node of the spline (x component). + //! real_type xNode( integer i ) const { return m_pSpline->xNode(i); } - //! return the i-th node of the spline (y component). + //! + //! Return the i-th node of the spline (y component). + //! real_type yNode( integer i ) const { return m_pSpline->yNode(i); } - //! return first node of the spline (x component). + //! + //! Return first node of the spline (x component). + //! real_type xBegin() const { return m_pSpline->xBegin(); } - //! return first node of the spline (y component). + //! + //! Return first node of the spline (y component). + //! real_type yBegin() const { return m_pSpline->yBegin(); } - //! return last node of the spline (x component). + //! + //! Return last node of the spline (x component). + //! real_type xEnd() const { return m_pSpline->xEnd(); } - //! return last node of the spline (y component). + //! + //! Return last node of the spline (y component). + //! real_type yEnd() const { return m_pSpline->yEnd(); } - //! Allocate memory for `npts` points + //! + //! Allocate memory for `npts` points. + //! void reserve( integer npts ) { return m_pSpline->reserve( npts ); } + //! //! Add a support point (x,y) to the spline. + //! void pushBack( real_type x, real_type y ) { return m_pSpline->pushBack( x, y ); } + //! //! Drop last inserted point of the spline. + //! void dropBack() { m_pSpline->dropBack(); } + //! //! Build a spline. + //! // must be defined in derived classes void build() { m_pSpline->build(); } void setup( GenericContainer const & gc ); void build( GenericContainer const & gc ) { setup(gc); } - /*! - * \brief Build a spline. - * - * \param tp spline type - * \param x vector of x-coordinates - * \param incx access elements as x[0], x[incx], x[2*incx],... - * \param y vector of y-coordinates - * \param incy access elements as y[0], y[incy], x[2*incy],... - * \param n total number of points - */ + //! + //! Build a spline. + //! + //! \param tp spline type + //! \param x vector of x-coordinates + //! \param incx access elements as x[0], x[incx], x[2*incx],... + //! \param y vector of y-coordinates + //! \param incy access elements as y[0], y[incy], x[2*incy],... + //! \param n total number of points + //! // must be defined in derived classes void build( @@ -117,14 +148,14 @@ namespace Splines { integer n ); - /*! - * \brief Build a spline. - * - * \param tp spline type - * \param x vector of x-coordinates - * \param y vector of y-coordinates - * \param n total number of points - */ + //! + //! Build a spline. + //! + //! \param tp spline type + //! \param x vector of x-coordinates + //! \param y vector of y-coordinates + //! \param n total number of points + //! void build( SplineType1D tp, @@ -135,13 +166,13 @@ namespace Splines { this->build( tp, x, 1, y, 1, n ); } - /*! - * \brief Build a spline. - * - * \param tp spline type - * \param x vector of x-coordinates - * \param y vector of y-coordinates - */ + //! + //! Build a spline. + //! + //! \param tp spline type + //! \param x vector of x-coordinates + //! \param y vector of y-coordinates + //! void build( SplineType1D tp, @@ -152,29 +183,42 @@ namespace Splines { this->build( tp, &x.front(), &y.front(), n ); } + //! //! Cancel the support points, empty the spline. - void - clear() { m_pSpline->clear(); } + //! + void clear() { m_pSpline->clear(); } - //! return x-minumum spline value + //! + //! Return x-minumum spline value. + //! real_type xMin() const { return m_pSpline->xMin(); } - //! return x-maximum spline value + //! + //! Return x-maximum spline value. + //! real_type xMax() const { return m_pSpline->xMax(); } - //! return y-minumum spline value + //! + //! Return y-minumum spline value (on the support point of the spline). + //! real_type yMin() const { return m_pSpline->yMin(); } - //! return y-maximum spline value + //! + //! Return y-maximum spline value (on the support point of the spline). + //! real_type yMax() const { return m_pSpline->yMax(); } /////////////////////////////////////////////////////////////////////////// - //! change X-origin of the spline + //! + //! Change X-origin of the spline. + //! void setOrigin( real_type x0 ) { return m_pSpline->setOrigin( x0 ); } - //! change X-range of the spline + //! + //! Change X-range of the spline. + //! void setRange( real_type xmin, real_type xmax ) { return m_pSpline->setRange( xmin, xmax ); } @@ -199,58 +243,92 @@ namespace Splines { } /////////////////////////////////////////////////////////////////////////// - //! Evaluate spline value + //! + //! Evaluate spline value at `x`. + //! real_type operator () ( real_type x ) const { return (*m_pSpline)(x); } - //! First derivative + //! + //! First derivative. + //! real_type D( real_type x ) const { return m_pSpline->D(x); } - //! Second derivative + //! + //! Second derivative. + //! real_type DD( real_type x ) const { return m_pSpline->DD(x); } - //! Third derivative + //! + //! Third derivative. + //! real_type DDD( real_type x ) const { return m_pSpline->DDD(x); } - //! 4th derivative + //! + //! 4th derivative. + //! real_type DDDD( real_type x ) const { return m_pSpline->DDDD(x); } - //! 5th derivative + //! + //! 5th derivative. + //! real_type DDDDD( real_type x ) const { return m_pSpline->DDDDD(x); } - //! Some aliases + //! + //! \name Some aliases. + ///@{ real_type eval( real_type x ) const { return (*m_pSpline)(x); } real_type eval_D( real_type x ) const { return m_pSpline->D(x); } real_type eval_DD( real_type x ) const { return m_pSpline->DD(x); } real_type eval_DDD( real_type x ) const { return m_pSpline->DDD(x); } real_type eval_DDDD( real_type x ) const { return m_pSpline->DDDD(x); } real_type eval_DDDDD( real_type x ) const { return m_pSpline->DDDDD(x); } - + ///@} + /////////////////////////////////////////////////////////////////////////// - //! Evaluate spline value knowing interval + //! + //! \name Evaluate spline value knowing interval. + ///@{ + //! + //! Evaluate spline at `x`. + //! real_type id_eval( integer ni, real_type x ) const { return m_pSpline->id_eval(ni,x); } - //! First derivative + //! + //! First derivative. + //! real_type id_D( integer ni, real_type x ) const { return m_pSpline->id_D(ni,x); } - //! Second derivative + //! + //! Second derivative. + //! real_type id_DD( integer ni, real_type x ) const { return m_pSpline->id_DD(ni,x); } - //! Third derivative + //! + //! Third derivative. + //! real_type id_DDD( integer ni, real_type x ) const { return m_pSpline->id_DDD(ni,x); } - //! 4th derivative + //! + //! 4th derivative. + //! real_type id_DDDD( integer ni, real_type x ) const { return m_pSpline->id_DDDD(ni,x); } - //! 5th derivative + //! + //! 5th derivative. + //! real_type id_DDDDD( integer ni, real_type x ) const { return m_pSpline->id_DDDDD(ni,x); } - //! get the piecewise polinomials of the spline + ///@} + + //! + //! Get the piecewise polinomials of the spline + //! integer // order coeffs( real_type * const cfs, @@ -262,17 +340,23 @@ namespace Splines { integer order() const { return m_pSpline->order(); } - //! Print spline coefficients + //! + //! Print spline coefficients. + //! void writeToStream( ostream_type & s ) const { return m_pSpline->writeToStream( s ); } - //! Return spline typename + //! + //! Return spline typename. + //! char const * type_name() const { return m_pSpline->type_name(); } - //! Return spline type (as number) + //! + //! Return spline type (as number). + //! unsigned type() const { return m_pSpline->type(); } diff --git a/src/Splines2D.cc b/src/Splines2D.cc index 5f2c0449..5ecb4d0c 100644 --- a/src/Splines2D.cc +++ b/src/Splines2D.cc @@ -31,170 +31,26 @@ namespace Splines { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline2D::build( - SplineType2D tp, - real_type const * x, integer incx, - real_type const * y, integer incy, - real_type const * z, integer ldZ, - integer nx, - integer ny, - bool fortran_storage, - bool transposed - ) { - switch ( tp ) { - case BILINEAR_TYPE: - static_cast(m_pSpline2D)->build( - x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case BICUBIC_TYPE: - static_cast(m_pSpline2D)->build( - x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case BIQUINTIC_TYPE: - static_cast(m_pSpline2D)->build( - x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case AKIMA2D_TYPE: - static_cast(m_pSpline2D)->build( - x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline2D::build( - SplineType2D tp, - vector const & x, - vector const & y, - vector const & z, - bool fortran_storage, - bool transposed - ) { - switch ( tp ) { - case BILINEAR_TYPE: - static_cast(m_pSpline2D)->build( - x, y, z, fortran_storage, transposed - ); - break; - case BICUBIC_TYPE: - static_cast(m_pSpline2D)->build( - x, y, z, fortran_storage, transposed - ); - break; - case BIQUINTIC_TYPE: - static_cast(m_pSpline2D)->build( - x, y, z, fortran_storage, transposed - ); - break; - case AKIMA2D_TYPE: - static_cast(m_pSpline2D)->build( - x, y, z, fortran_storage, transposed - ); - break; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline2D::build( - SplineType2D tp, - real_type const * z, - integer ldZ, - integer nx, - integer ny, - bool fortran_storage, - bool transposed - ) { - switch ( tp ) { - case BILINEAR_TYPE: - static_cast(m_pSpline2D)->build( - z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case BICUBIC_TYPE: - static_cast(m_pSpline2D)->build( - z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case BIQUINTIC_TYPE: - static_cast(m_pSpline2D)->build( - z, ldZ, nx, ny, fortran_storage, transposed - ); - break; - case AKIMA2D_TYPE: - static_cast(m_pSpline2D)->build( - z, ldZ, nx, ny, fortran_storage, transposed - ); - break; + Spline2D::new_spline( SplineType2D tp ) { + if ( m_spline_2D == nullptr ) { + delete m_spline_2D; + m_spline_2D = nullptr; } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline2D::build( - SplineType2D tp, - vector const & z, - integer nx, - integer ny, - bool fortran_storage, - bool transposed - ) { switch ( tp ) { case BILINEAR_TYPE: - static_cast(m_pSpline2D)->build( - z, nx, ny, fortran_storage, transposed - ); + m_spline_2D = new BilinearSpline(m_name); break; case BICUBIC_TYPE: - static_cast(m_pSpline2D)->build( - z, nx, ny, fortran_storage, transposed - ); + m_spline_2D = new BiCubicSpline(m_name); break; case BIQUINTIC_TYPE: - static_cast(m_pSpline2D)->build( - z, nx, ny, fortran_storage, transposed - ); + m_spline_2D = new BiQuinticSpline(m_name); break; case AKIMA2D_TYPE: - static_cast(m_pSpline2D)->build( - z, nx, ny, fortran_storage, transposed - ); + m_spline_2D = new Akima2Dspline(m_name); break; - } - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - Spline2D::build( GenericContainer const & gc ) { - - using GenericContainerNamespace::string_type; - - string msg = fmt::format("Spline2D[{}]::setup( gc ):", m_name ); - UTILS_ASSERT( - gc.exists("spline_type"), "{}, missing `spline_type` field!\n", msg - ); - - string_type type = gc("spline_type").get_string(); - - if ( type == "bilinear" ) { - static_cast(m_pSpline2D)->build( gc ); - } else if ( type == "bicubic" ) { - static_cast(m_pSpline2D)->build( gc ); - } else if ( type == "biquintic" ) { - static_cast(m_pSpline2D)->build( gc ); - } else if ( type == "Akima" || type == "akima" ) { - static_cast(m_pSpline2D)->build( gc ); - } else { - UTILS_ERROR( "{}, type `{}` unknown\n", msg, type ); + default: + UTILS_ERROR( "new_spline, type `{}` unknown\n", tp ); } } diff --git a/src/Splines2D.hxx b/src/Splines2D.hxx index 4f24c355..5239b01e 100644 --- a/src/Splines2D.hxx +++ b/src/Splines2D.hxx @@ -28,86 +28,184 @@ namespace Splines { + //! //! Bi-quintic spline base class + //! class Spline2D { protected: std::string m_name; - SplineSurf * m_pSpline2D; + SplineSurf * m_spline_2D; + + void new_spline( SplineType2D tp ); + public: + //! \name Constructors + ///@{ + + //! //! spline constructor + //! Spline2D( string const & name = "Spline2D" ) : m_name(name) - , m_pSpline2D( nullptr ) + , m_spline_2D( nullptr ) {} - ~Spline2D() - {} - - bool is_x_closed() const { return m_pSpline2D->is_x_closed(); } - void make_x_closed() { m_pSpline2D->make_x_closed(); } - void make_x_opened() { m_pSpline2D->make_x_opened(); } - - bool is_y_closed() const { return m_pSpline2D->is_y_closed(); } - void make_y_closed() { m_pSpline2D->make_y_closed(); } - void make_y_opened() { m_pSpline2D->make_y_opened(); } - - bool is_x_bounded() const { return m_pSpline2D->is_x_bounded(); } - void make_x_unbounded() { m_pSpline2D->make_x_unbounded(); } - void make_x_bounded() { m_pSpline2D->make_x_bounded(); } - - bool is_y_bounded() const { return m_pSpline2D->is_y_bounded(); } - void make_y_unbounded() { m_pSpline2D->make_y_unbounded(); } - void make_y_bounded() { m_pSpline2D->make_y_bounded(); } - - string const & name() const { return m_pSpline2D->name(); } - + virtual + ~Spline2D() { + if ( m_spline_2D != nullptr ) { + delete m_spline_2D; + m_spline_2D = nullptr; + } + } + + ///@} + + //! + //! Return `true` if the surface is assumed closed in the `x` direction + //! + bool is_x_closed() const { return m_spline_2D->is_x_closed(); } + + //! + //! Setup the surface as closed in the `x` direction. + //! + void make_x_closed() { m_spline_2D->make_x_closed(); } + + //! + //! Setup the surface as open in the `x` direction. + //! + void make_x_opened() { m_spline_2D->make_x_opened(); } + + //! + //! Return `true` if the surface is assumed closed in the `y` direction. + //! + bool is_y_closed() const { return m_spline_2D->is_y_closed(); } + + //! + //! Setup the surface as closed in the `y` direction. + //! + void make_y_closed() { m_spline_2D->make_y_closed(); } + + //! + //! Setup the surface as open in the `y` direction. + //! + void make_y_opened() { m_spline_2D->make_y_opened(); } + + //! + //! Return `true` if the parameter `x` assumed bounded. + //! If false the spline is estrapolated for `x` values + //! outside the range. + //! + bool is_x_bounded() const { return m_spline_2D->is_x_bounded(); } + + //! + //! Make the spline surface unbounded in the `x` direction. + //! + void make_x_unbounded() { m_spline_2D->make_x_unbounded(); } + + //! + //! Make the spline surface bounded in the `x` direction. + //! + void make_x_bounded() { m_spline_2D->make_x_bounded(); } + + //! + //! Return `true` if the parameter `y` assumed bounded. + //! If false the spline is estrapolated for `y` values + //! outside the range. + //! + bool is_y_bounded() const { return m_spline_2D->is_y_bounded(); } + + //! + //! Make the spline surface unbounded in the `y` direction + //! + void make_y_unbounded() { m_spline_2D->make_y_unbounded(); } + + //! + //! Make the spline surface bounded in the `y` direction + //! + void make_y_bounded() { m_spline_2D->make_y_bounded(); } + + //! + //! Return the name of the spline surface assigned if was constructed. + //! + string const & name() const { return m_spline_2D->name(); } + + //! //! Cancel the support points, empty the spline. - void clear() { m_pSpline2D->clear(); } + //! + void clear() { m_spline_2D->clear(); } - //! return the number of support points of the spline along x direction + //! + //! Return the number of support points of the spline along x direction. + //! integer - numPointX() const { return m_pSpline2D->numPointX(); } + numPointX() const { return m_spline_2D->numPointX(); } - //! return the number of support points of the spline along y direction + //! + //! Return the number of support points of the spline along y direction. + //! integer - numPointY() const { return m_pSpline2D->numPointY(); } - - //! return the i-th node of the spline (x component). - real_type - xNode( integer i ) const { return m_pSpline2D->xNode(i); } - - //! return the i-th node of the spline (y component). - real_type - yNode( integer i ) const { return m_pSpline2D->yNode(i); } + numPointY() const { return m_spline_2D->numPointY(); } - //! return the i-th node of the spline (y component). + //! + //! Return the i-th node of the spline (x component). + //! real_type - zNode( integer i, integer j ) const { return m_pSpline2D->zNode(i,j); } + xNode( integer i ) const { return m_spline_2D->xNode(i); } - //! return x-minumum spline value + //! + //! Return the i-th node of the spline (y component). + //! real_type - xMin() const { return m_pSpline2D->xMin(); } + yNode( integer i ) const { return m_spline_2D->yNode(i); } - //! return x-maximum spline value + //! + //! Return the i-th node of the spline (y component). + //! real_type - xMax() const { return m_pSpline2D->xMax(); } - - //! return y-minumum spline value - real_type - yMin() const { return m_pSpline2D->yMin(); } - - //! return y-maximum spline value - real_type - yMax() const { return m_pSpline2D->yMax(); } - - //! return z-minumum spline value - real_type - zMin() const { return m_pSpline2D->zMin(); } - - //! return z-maximum spline value - real_type - zMax() const { return m_pSpline2D->zMax(); } + zNode( integer i, integer j ) const { return m_spline_2D->zNode(i,j); } + + //! + //! \name Get bounds + //! + ///@{ + + //! + //! Return x-minumum spline value. + //! + real_type xMin() const { return m_spline_2D->xMin(); } + + //! + //! Return x-maximum spline value. + //! + real_type xMax() const { return m_spline_2D->xMax(); } + + //! + //! Return y-minumum spline value. + //! + real_type yMin() const { return m_spline_2D->yMin(); } + + //! + //! Return y-maximum spline value + //! + real_type yMax() const { return m_spline_2D->yMax(); } + + //! + //! Return z-minumum spline value + //! + real_type zMin() const { return m_spline_2D->zMin(); } + + //! + //! Return z-maximum spline value + //! + real_type zMax() const { return m_spline_2D->zMax(); } + + ///@} + + //! + //! \name Constructors + //! + ///@{ void build( @@ -119,20 +217,25 @@ namespace Splines { integer ny, bool fortran_storage = false, bool transposed = false - ); - - /*! - * \brief Build surface spline - * - * \param tp spline type - * \param x vector of x-coordinates, nx = x.size() - * \param y vector of y-coordinates, ny = y.size() - * \param z matrix of z-values. Elements are stored - * by row Z(i,j) = z[i*ny+j] as C-matrix - * \param fortran_storage if true elements are stored by column - * i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix - * \param transposed if true matrix Z is stored transposed - */ + ) { + new_spline( tp ); + m_spline_2D->build( + x, incx, y, incy, z, ldZ, nx, ny, fortran_storage, transposed + ); + } + + //! + //! Build surface spline + //! + //! \param tp spline type + //! \param x vector of x-coordinates, nx = x.size() + //! \param y vector of y-coordinates, ny = y.size() + //! \param z matrix of z-values. Elements are stored + //! by row Z(i,j) = z[i*ny+j] as C-matrix + //! \param fortran_storage if true elements are stored by column + //! i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix + //! \param transposed if true matrix Z is stored transposed + //! void build( SplineType2D tp, @@ -141,22 +244,25 @@ namespace Splines { vector const & z, bool fortran_storage = false, bool transposed = false - ); - - /*! - * \brief Build surface spline - * - * \param tp spline type - * \param z matrix of z-values. Elements are stored - * by row Z(i,j) = z[i*ny+j] as C-matrix - * \param ldZ leading dimension of the matrix. Elements are stored - * by row Z(i,j) = z[i*ldZ+j] as C-matrix - * \param nx x-dimension - * \param ny y-dimension - * \param fortran_storage if true elements are stored by column - * i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix - * \param transposed if true matrix Z is stored transposed - */ + ) { + new_spline( tp ); + m_spline_2D->build( x, y, z, fortran_storage, transposed ); + } + + //! + //! Build surface spline + //! + //! \param tp spline type + //! \param z matrix of z-values. Elements are stored + //! by row Z(i,j) = z[i*ny+j] as C-matrix + //! \param ldZ leading dimension of the matrix. Elements are stored + //! by row Z(i,j) = z[i*ldZ+j] as C-matrix + //! \param nx x-dimension + //! \param ny y-dimension + //! \param fortran_storage if true elements are stored by column + //! i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix + //! \param transposed if true matrix Z is stored transposed + //! void build( SplineType2D tp, @@ -166,22 +272,25 @@ namespace Splines { integer ny, bool fortran_storage = false, bool transposed = false - ); - - /*! - * \brief Build surface spline - * - * \param tp spline type - * \param z matrix of z-values. Elements are stored - * by row Z(i,j) = z[i*ny+j] as C-matrix. - * ldZ leading dimension of the matrix is ny for C-storage - * and nx for Fortran storage. - * \param nx x-dimension - * \param ny y-dimension - * \param fortran_storage if true elements are stored by column - * i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix - * \param transposed if true matrix Z is stored transposed - */ + ) { + new_spline( tp ); + m_spline_2D->build( z, ldZ, nx, ny, fortran_storage, transposed ); + } + + //! + //! Build surface spline + //! + //! \param tp spline type + //! \param z matrix of z-values. Elements are stored + //! by row Z(i,j) = z[i*ny+j] as C-matrix. + //! ldZ leading dimension of the matrix is ny for C-storage + //! and nx for Fortran storage. + //! \param nx x-dimension + //! \param ny y-dimension + //! \param fortran_storage if true elements are stored by column + //! i.e. Z(i,j) = z[i+j*nx] as Fortran-matrix + //! \param transposed if true matrix Z is stored transposed + //! void build( SplineType2D tp, @@ -190,65 +299,102 @@ namespace Splines { integer ny, bool fortran_storage = false, bool transposed = false - ); - + ) { + new_spline( tp ); + m_spline_2D->build( z, nx, ny, fortran_storage, transposed ); + } + + //! + //! Build spline surface using a `GenericContainer` + //! + //! - gc("spline_type") + //! - "bilinear" build a bilinear spline surface + //! - "bicubic" build a spline surface with cubic spline + //! - "biquintic" build a spline surface with quintic spline + //! - "Akima" or "akima "build a spline surface with cubic spline + //! using Akima algorithm to avoid obscillation + //! void - setup( GenericContainer const & gc ) - { build(gc); } + setup( GenericContainer const & gc ) { + string msg = fmt::format("Spline2D[{}]::setup( gc ):", m_name ); + UTILS_ASSERT( + gc.exists("spline_type"), "{}, missing `spline_type` field!\n", msg + ); + string type = gc("spline_type").get_string(); + new_spline( string_to_splineType2D( type ) ); + + m_spline_2D->setup( gc ); + } void - build( GenericContainer const & gc ); + build( GenericContainer const & gc ) + { setup(gc); } + + ///@} - //! Evaluate spline value + //! + //! \name Evaluate + //! + ///@{ + + //! + //! Evaluate spline value at `(x,y)`. + //! real_type operator () ( real_type x, real_type y ) const - { return (*m_pSpline2D)( x, y ); } + { return (*m_spline_2D)( x, y ); } - //! First derivative + //! + //! Evaluate spline value at `(x,y)`. + //! + real_type + eval( real_type x, real_type y ) const + { return (*this)(x,y); } + + ///@} + + //! \name First derivatives: + ///@{ void D( real_type x, real_type y, real_type d[3] ) const - { return m_pSpline2D->D( x, y, d ); } + { return m_spline_2D->D( x, y, d ); } real_type Dx( real_type x, real_type y ) const - { return m_pSpline2D->Dx( x, y ); } + { return m_spline_2D->Dx( x, y ); } real_type Dy( real_type x, real_type y ) const - { return m_pSpline2D->Dy( x, y ); } + { return m_spline_2D->Dy( x, y ); } + + real_type + eval_D_1( real_type x, real_type y ) const + { return this->Dx(x,y); } - //! Second derivative + real_type + eval_D_2( real_type x, real_type y ) const + { return this->Dy(x,y); } + + ///@} + + //! \name Second derivatives: + ///@{ void DD( real_type x, real_type y, real_type dd[6] ) const - { return m_pSpline2D->DD( x, y, dd ); } + { return m_spline_2D->DD( x, y, dd ); } real_type Dxx( real_type x, real_type y ) const - { return m_pSpline2D->Dxx( x, y ); } + { return m_spline_2D->Dxx( x, y ); } real_type Dxy( real_type x, real_type y ) const - { return m_pSpline2D->Dxy( x, y ); } + { return m_spline_2D->Dxy( x, y ); } real_type Dyy( real_type x, real_type y ) const - { return m_pSpline2D->Dyy( x, y ); } + { return m_spline_2D->Dyy( x, y ); } - //! Evaluate spline value - real_type - eval( real_type x, real_type y ) const - { return (*this)(x,y); } - - //! First derivative - real_type - eval_D_1( real_type x, real_type y ) const - { return this->Dx(x,y); } - - real_type - eval_D_2( real_type x, real_type y ) const - { return this->Dy(x,y); } - - //! Second derivative real_type eval_D_1_1( real_type x, real_type y ) const { return this->Dxx(x,y); } @@ -260,22 +406,32 @@ namespace Splines { real_type eval_D_2_2( real_type x, real_type y ) const { return this->Dyy(x,y); } + ///@} - //! Print spline coefficients + //! + //! Print spline coefficients. + //! void writeToStream( ostream_type & s ) const - { return m_pSpline2D->writeToStream( s ); } + { return m_spline_2D->writeToStream( s ); } + //! //! Return spline typename - char const * type_name() const { return m_pSpline2D->type_name(); } + //! + char const * type_name() const { return m_spline_2D->type_name(); } string info() const - { return m_pSpline2D->info(); } + { return m_spline_2D->info(); } void info( ostream_type & stream ) const - { m_pSpline2D->info( stream ); } + { m_spline_2D->info( stream ); } + + void + dump_data( ostream_type & stream ) const + { m_spline_2D->dump_data( stream ); } + }; } diff --git a/src/SplinesBivariate.cc b/src/SplinesBivariate.cc index 9a43134d..b26d4259 100644 --- a/src/SplinesBivariate.cc +++ b/src/SplinesBivariate.cc @@ -30,6 +30,8 @@ namespace Splines { + #ifndef DOXYGEN_SHOULD_SKIP_THIS + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SplineSurf::~SplineSurf() @@ -47,7 +49,7 @@ namespace Splines { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void - SplineSurf::clear(void) { + SplineSurf::clear() { m_mem.free(); m_nx = m_ny = 0; m_X = m_Y = m_Z = nullptr; @@ -57,7 +59,85 @@ namespace Splines { } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + void + SplineSurf::load_Z( + real_type const * z, + integer ldZ, + bool fortran_storage, + bool transposed + ) { + if ( transposed ) { + if ( fortran_storage ) { + UTILS_ASSERT( + ldZ >= m_nx, + "SplineSurf::load_Z[transposed+fortran_storage]\n" + "ldZ = {} must be >= of nx = {}\n", + ldZ, m_nx + ); + for ( integer i = 0; i < m_nx; ++i ) + for ( integer j = 0; j < m_ny; ++j ) + m_Z[size_t(ipos_C(i,j))] = z[size_t(ipos_C(j,i,ldZ))]; + } else { + UTILS_ASSERT( + ldZ >= m_ny, + "SplineSurf::load_Z[transposed]\n" + "ldZ = {} must be >= of ny = {}\n", + ldZ, m_ny + ); + for ( integer i = 0; i < m_nx; ++i ) + for ( integer j = 0; j < m_ny; ++j ) + m_Z[size_t(ipos_C(i,j))] = z[size_t(ipos_F(j,i,ldZ))]; + } + } else { + if ( fortran_storage ) { + UTILS_ASSERT( + ldZ >= m_ny, + "SplineSurf::load_Z[fortran_storage]\n" + "ldZ = {} must be >= of ny = {}\n", + ldZ, m_ny + ); + for ( integer i = 0; i < m_nx; ++i ) + for ( integer j = 0; j < m_ny; ++j ) + m_Z[size_t(ipos_C(i,j))] = z[size_t(ipos_C(i,j,ldZ))]; + } else { + UTILS_ASSERT( + ldZ >= m_nx, + "SplineSurf::load_Z\n" + "ldZ = {} must be >= of nx = {}\n", + ldZ, m_nx + ); + for ( integer i = 0; i < m_nx; ++i ) + for ( integer j = 0; j < m_ny; ++j ) + m_Z[size_t(ipos_C(i,j))] = z[size_t(ipos_F(i,j,ldZ))]; + } + } + m_Z_max = *std::max_element(m_Z,m_Z+m_nx*m_ny); + m_Z_min = *std::min_element(m_Z,m_Z+m_nx*m_ny); + makeSpline(); + } + + #endif + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + //! + //! Build a spline surface with data + //! + //! - `x` the vector of x-nodes (size `nx`) + //! - `y` the vector of y-nodes (size `ny`) + //! - `z` the matrix of z-values, \f$ z_{ij} = f(x_i,y_j) \f$ + //! + //! \code{.unparsed} + //! +----------+ + //! | | internally data is stored by column + //! index j ny zij | zij = data[ i*ny + j ] + //! | | + //! +--- nx ---+ + //! index i + //! \endcode + //! + //! - `fortran_storage` is `true` if matrix `z` is stored by column + //! - `transposed` is true means that data are stored transposed + //! void SplineSurf::build( real_type const * x, integer incx, @@ -76,30 +156,32 @@ namespace Splines { m_Z = m_mem( size_t(nx*ny) ); for ( size_t i = 0; i < size_t(nx); ++i ) m_X[i] = x[i*size_t(incx)]; for ( size_t i = 0; i < size_t(ny); ++i ) m_Y[i] = y[i*size_t(incy)]; - if ( (fortran_storage && transposed) || (!fortran_storage && !transposed) ) { - UTILS_ASSERT( - ldZ >= ny, - "SplineSurf::build, ldZ = {} must be >= of nx = {}\n", ldZ, ny - ); - for ( integer i = 0; i < nx; ++i ) - for ( integer j = 0; j < ny; ++j ) - m_Z[size_t(ipos_C(i,j,ny))] = z[size_t(ipos_C(i,j,ldZ))]; - } else { - UTILS_ASSERT( - ldZ >= nx, - "SplineSurf::build, ldZ = {} must be >= of ny = {}\n", ldZ, nx - ); - for ( integer i = 0; i < nx; ++i ) - for ( integer j = 0; j < ny; ++j ) - m_Z[size_t(ipos_C(i,j,ny))] = z[size_t(ipos_F(i,j,ldZ))]; - } - m_Z_max = *std::max_element(m_Z,m_Z+nx*ny); - m_Z_min = *std::min_element(m_Z,m_Z+nx*ny); - makeSpline(); + load_Z( z, ldZ, fortran_storage, transposed ); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + //! + //! Build a spline surface with data + //! + //! - `z` the matrix of z-values, \f$ z_{ij} = f(x_i,y_j) \f$ + //! - `ldZ` leading dimension of matriz `z` + //! - `nx` number of nodes in x-direction + //! - `ny` number of nodes in y-direction + //! + //! nodes are equispaced in x and y directions. + //! + //! \code{.unparsed} + //! +----------+ + //! | | internally data is stored by column + //! index j ny zij | zij = data[ i*ny + j ] + //! | | + //! +--- nx ---+ + //! index i + //! \endcode + //! + //! - `fortran_storage` is `true` if matrix `z` is stored by column + //! - `transposed` is true means that data are stored transposed + //! void SplineSurf::build( real_type const * z, @@ -109,13 +191,15 @@ namespace Splines { bool fortran_storage, bool transposed ) { - Utils::Malloc mem("SplineSurf::build"); - mem.allocate( size_t(nx+ny) ); - real_type * XX = mem( size_t(nx) ); - real_type * YY = mem( size_t(ny) ); // temporary vector - for ( size_t i = 0; i < size_t(nx); ++i ) XX[i] = real_type(i); - for ( size_t i = 0; i < size_t(ny); ++i ) YY[i] = real_type(i); - build( XX, 1, YY, 1, z, ldZ, nx, ny, fortran_storage, transposed ); + m_nx = nx; + m_ny = ny; + m_mem.reallocate( size_t((nx+1)*(ny+1)) ); + m_X = m_mem( size_t(nx) ); + m_Y = m_mem( size_t(ny) ); + m_Z = m_mem( size_t(nx*ny) ); + for ( size_t i = 0; i < size_t(nx); ++i ) m_X[i] = real_type(i); + for ( size_t i = 0; i < size_t(ny); ++i ) m_Y[i] = real_type(i); + load_Z( z, ldZ, fortran_storage, transposed ); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -129,10 +213,10 @@ namespace Splines { // // 0 2 // - size_t i0 = size_t(ipos_C(i,j,m_ny)); - size_t i1 = size_t(ipos_C(i,j+1,m_ny)); - size_t i2 = size_t(ipos_C(i+1,j,m_ny)); - size_t i3 = size_t(ipos_C(i+1,j+1,m_ny)); + size_t i0 = size_t(ipos_C(i,j)); + size_t i1 = size_t(ipos_C(i,j+1)); + size_t i2 = size_t(ipos_C(i+1,j)); + size_t i3 = size_t(ipos_C(i+1,j+1)); bili3[0][0] = m_Z[i0]; bili3[0][1] = m_Z[i1]; bili3[0][2] = m_DY[i0]; bili3[0][3] = m_DY[i1]; @@ -271,10 +355,10 @@ namespace Splines { integer i, integer j, real_type bili5[6][6] ) const { - size_t i00 = size_t(ipos_C(i,j,m_ny)); - size_t i01 = size_t(ipos_C(i,j+1,m_ny)); - size_t i10 = size_t(ipos_C(i+1,j,m_ny)); - size_t i11 = size_t(ipos_C(i+1,j+1,m_ny)); + size_t i00 = size_t(ipos_C(i,j)); + size_t i01 = size_t(ipos_C(i,j+1)); + size_t i10 = size_t(ipos_C(i+1,j)); + size_t i11 = size_t(ipos_C(i+1,j+1)); // // 1 3 @@ -446,15 +530,65 @@ namespace Splines { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - using GenericContainerNamespace::GC_VECTOR; - using GenericContainerNamespace::GC_VEC_INTEGER; - using GenericContainerNamespace::GC_VEC_LONG; - using GenericContainerNamespace::GC_VEC_REAL; - using GenericContainerNamespace::GC_MAT_REAL; - using GenericContainerNamespace::mat_real_type; + #ifndef DOXYGEN_SHOULD_SKIP_THIS + + void + SplineSurf::dump_data( ostream_type & s ) const { + s << "X = [ " << m_X[0]; + for ( integer i = 1; i < m_nx; ++i ) s << ", " << m_X[size_t(i)]; + s << " ]\nY = [ " << m_Y[0]; + for ( integer i = 1; i < m_ny; ++i ) s << ", " << m_Y[size_t(i)]; + s << " ]\nZ = [\n"; + for ( integer j = 0; j < m_ny; ++j ) { + s << " [ " << m_Z[size_t(ipos_C(0,j))]; + for ( integer i = 1; i < m_nx; ++i ) + s << ", " << m_Z[size_t(ipos_C(i,j))]; + s << " ]\n"; + } + s << "\n];\n"; + } + + #endif // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + using GC_namespace::GC_VECTOR; + using GC_namespace::GC_VEC_INTEGER; + using GC_namespace::GC_VEC_LONG; + using GC_namespace::GC_VEC_REAL; + using GC_namespace::GC_MAT_REAL; + using GC_namespace::mat_real_type; + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + //! + //! Setup a spline surface using a `GenericContainer` + //! + //! - `gc("fortran_storage")` if true `zdata` is stored by column, otherwise by rows + //! - `gc("transposed")` if true `zdata` is stored transposed + //! + //! - `gc("xdata")` vector of mesh point in `x` direction + //! - `gc("ydata")` vector of mesh point in `y` direction + //! - `gc("zdata")` may be + //! - matrix of size `nx` x `ny` (`ny` x `nx` if data is transposed) + //! - vector of size `nx` x `ny` stiring the data. + //! + //! - `nx` number of nodes in x-direction the size of vector in `x` direction + //! - `ny` number of nodes in y-direction the size of vector in `y` direction + //! + //! nodes are equispaced in x and y directions. + //! + //! \code{.unparsed} + //! +----------+ + //! | | internally data is stored by column + //! index j ny zij | zij = data[ i*ny + j ] + //! | | + //! +--- nx ---+ + //! index i + //! \endcode + //! + //! - `fortran_storage` is `true` if matrix `z` is stored by column + //! - `transposed` is true means that data are stored transposed + //! void SplineSurf::setup( GenericContainer const & gc ) { /* @@ -472,105 +606,82 @@ namespace Splines { GenericContainer const & gc_y = gc("ydata"); GenericContainer const & gc_z = gc("zdata"); - vec_real_type x, y; - gc_x.copyto_vec_real( x, (msg+" field `xdata'").c_str() ); - gc_y.copyto_vec_real( y, (msg+" field `ydata'").c_str() ); + m_nx = gc_x.get_num_elements(); + m_ny = gc_y.get_num_elements(); + m_mem.reallocate( size_t((m_nx+1)*(m_ny+1)) ); + m_X = m_mem( size_t(m_nx) ); + m_Y = m_mem( size_t(m_ny) ); + m_Z = m_mem( size_t(m_nx*m_ny) ); + + for ( integer i = 0; i < m_nx; ++i ) m_X[size_t(i)] = gc_x.get_number_at(i); + for ( integer i = 0; i < m_ny; ++i ) m_Y[size_t(i)] = gc_y.get_number_at(i); bool fortran_storage = false; + bool transposed = false; gc.get_if_exists("fortran_storage",fortran_storage); - - bool transposed = false; gc.get_if_exists("transposed",transposed); + /* - // +------+ - // ny | - // + nx + + // +------+ + // j ny | (xi,yj) + // + nx + + // i */ - integer nx = integer( x.size() ); // ncols - integer ny = integer( y.size() ); // nrows - integer ldz = integer( fortran_storage ? ny : nx ); + // cosa mi aspetto in lettura + integer N, M; + if ( transposed ) { N = m_ny; M = m_nx; } + else { N = m_nx; M = m_ny; } + integer LD = fortran_storage ? N : M; if ( GC_MAT_REAL == gc_z.get_type() ) { mat_real_type const & z = gc_z.get_mat_real(); - if ( transposed ) { - UTILS_ASSERT( - unsigned(ny) == z.numCols() && unsigned(nx) == z.numCols(), - "{}, field `z` expected to be of size {} x {}, found: {} x {}\n", - msg, ny, nx, z.numRows(), z.numCols() - ); - } else { - UTILS_ASSERT( - unsigned(nx) == z.numCols() && unsigned(ny) == z.numCols(), - "{}, field `z` expected to be of size {} x {}, found: {} x {}\n", - msg, nx, ny, z.numRows(), z.numCols() - ); - } - build( - &x.front(), 1, &y.front(), 1, z.data(), ldz, - nx, ny, fortran_storage, transposed + UTILS_ASSERT( + unsigned(N) == z.numRows() && unsigned(M) == z.numCols(), + "{}, field `z` expected to be of size {} x {}, found: {} x {}\n", + msg, N, M, z.numRows(), z.numCols() ); + load_Z( m_Z, LD, fortran_storage, transposed ); } else if ( GC_VEC_INTEGER == gc_z.get_type() || GC_VEC_LONG == gc_z.get_type() || GC_VEC_REAL == gc_z.get_type() ) { - vec_real_type z; - gc_z.copyto_vec_real( z, "SplineSurf::setup, field `z'" ); - integer nz = integer(z.size()); + + integer nz = gc_z.get_num_elements(); + integer nxy = m_nx * m_ny; UTILS_ASSERT( - nz == nx*ny, + nz == nxy, "{}, field `z` expected to be of size {} = {}x{}, found: `{}`\n", - msg, nx*ny, nx, ny, nz - ); - build( - &x.front(), 1, &y.front(), 1, &z.front(), ldz, - nx, ny, fortran_storage, transposed + msg, nxy, m_nx, m_ny, nz ); + for ( integer i = 0; i < nz ; ++i ) m_Z[size_t(i)] = gc_z.get_number_at(i); + load_Z( m_Z, LD, fortran_storage, transposed ); } else if ( GC_VECTOR == gc_z.get_type() ) { vector_type const & data = gc_z.get_vector(); - vec_real_type tmp, z; - z.resize( nx * ny ); - if ( fortran_storage ) { - UTILS_ASSERT( - size_t(nx) == data.size(), - "{}, field `zdata` (vector of vector) expected of size {} found of size {}\n", - msg, nx, data.size() - ); - for ( integer i = 0; i < nx; ++i ) { - GenericContainer const & col = data[size_t(i)]; - string msg1 = fmt::format( "{} reading column {}\n", msg, i ); - col.copyto_vec_real( tmp, msg1.c_str() ); - UTILS_ASSERT( - size_t(ny) == tmp.size(), - "{}, column {}-th of size {}, expected {}\n", - msg, i, tmp.size(), ny - ); - for ( integer j = 0; j < ny; ++j ) - z[size_t(ipos_C(i,j,ny))] = tmp[size_t(j)]; - } - } else { + vec_real_type tmp; + UTILS_ASSERT( + size_t(M) == data.size(), + "{}, field `zdata` (vector of vector) expected of size {} found of size {}\n", + msg, M, data.size() + ); + for ( integer j = 0; j < M; ++j ) { + GenericContainer const & row = data[size_t(j)]; + string msg1 = fmt::format( "{}, reading row {}\n", msg, j ); + row.copyto_vec_real( tmp, msg1.c_str() ); UTILS_ASSERT( - size_t(ny) == data.size(), - "{}, field `zdata` (vector of vector) expected of size {} found of size {}\n", - msg, ny, data.size() + size_t(N) == tmp.size(), + "{}, row {}-th of size {}, expected {}\n", + msg, j, tmp.size(), N ); - for ( integer j = 0; j < ny; ++j ) { - GenericContainer const & row = data[size_t(j)]; - string msg1 = fmt::format( "{} , reading row {}\n", msg, j ); - row.copyto_vec_real( tmp, msg1.c_str() ); - UTILS_ASSERT( - size_t(nx) == tmp.size(), - "{}, row {}-th of size {}, expected {}\n", - msg, j, tmp.size(), nx - ); - for ( integer i = 0; i < nx; ++i ) - z[size_t(ipos_C(i,j,ny))] = tmp[size_t(i)]; + if ( transposed ) { + for ( integer i = 0; i < N; ++i ) + m_Z[size_t(ipos_C(j,i))] = tmp[size_t(i)]; + } else { + for ( integer i = 0; i < N; ++i ) + m_Z[size_t(ipos_C(i,j))] = tmp[size_t(i)]; } } - build( - &x.front(), 1, &y.front(), 1, &z.front(), nx, - nx, ny, false, false - ); + load_Z( m_Z, m_ny, true, false ); } else { UTILS_ERROR( "{}, field `z` expected to be of type" diff --git a/src/SplinesCinterface.cc b/src/SplinesCinterface.cc index 6c19b5ac..b972457a 100644 --- a/src/SplinesCinterface.cc +++ b/src/SplinesCinterface.cc @@ -21,10 +21,10 @@ // file: SplineCinterface.cc // -/*! - | \file SplinesCinterface.cc - | This file contains the sources for the C interface to `Splines` - */ +//! +//! \file SplinesCinterface.cc +//! This file contains the sources for the C interface to `Splines` +//! #ifndef DOXYGEN_SHOULD_SKIP_THIS diff --git a/src/SplinesCinterface.h b/src/SplinesCinterface.h index 2c879043..38a4972b 100644 --- a/src/SplinesCinterface.h +++ b/src/SplinesCinterface.h @@ -22,9 +22,8 @@ */ /*! - | \addtogroup Splines C interface + * \addtogroup Splines C interface */ - /* @{ */ #pragma once @@ -35,29 +34,29 @@ extern "C" { #endif - /*! Create a new ``Spline`` object ``id`` */ + /*! Create a new `Spline` object `id` */ int SPLINE_new( char const * id, char const * type ); - /*! Select a ``Spline`` object ``id`` */ + /*! Select a `Spline` object `id` */ int SPLINE_select( char const * id ); - /*! Delete the ``Spline`` object ``id`` */ + /*! Delete the `Spline` object `id` */ int SPLINE_delete( char const * id ); - /*! Print the actual ``Spline`` */ + /*! Print the actual `Spline` */ int SPLINE_print(); - /*! Get type of actual pointed element of ``Spline`` */ + /*! Get type of actual pointed element of `Spline` */ char const * SPLINE_get_type_name(); - /*! Get pointer to the internal ``Spline`` object 'id' */ + /*! Get pointer to the internal `Spline` object 'id' */ void * SPLINE_mem_ptr( char const * id ); - /*! Set actual pointed element of ``Spline`` to an empty spline. */ + /*! Set actual pointed element of `Spline` to an empty spline. */ int SPLINE_init(); /*! Push `(x,y)` interpolation point to a spline `bool` */ @@ -74,22 +73,22 @@ extern "C" { int n ); - /*! Evaluate spline at ``x`` */ + /*! Evaluate spline at `x` */ double SPLINE_eval( double x ); - /*! Evaluate spline first derivative at ``x`` */ + /*! Evaluate spline first derivative at `x` */ double SPLINE_eval_D( double x ); - /*! Evaluate spline second derivative at ``x`` */ + /*! Evaluate spline second derivative at `x` */ double SPLINE_eval_DD( double x ); - /*! Evaluate spline third derivative at ``x`` */ + /*! Evaluate spline third derivative at `x` */ double SPLINE_eval_DDD( double x ); - /*! Evaluate spline 4th derivative at ``x`` */ + /*! Evaluate spline 4th derivative at `x` */ double SPLINE_eval_DDDD( double x ); - /*! Evaluate spline 5th derivative at ``x`` */ + /*! Evaluate spline 5th derivative at `x` */ double SPLINE_eval_DDDDD( double x ); #ifdef __cplusplus diff --git a/src_python_interface/include/py-Splines.hh b/src_python_interface/include/py-Splines.hh index e9f53fa2..24a1acbf 100644 --- a/src_python_interface/include/py-Splines.hh +++ b/src_python_interface/include/py-Splines.hh @@ -24,7 +24,7 @@ namespace pySpline { using pybind11::module; - using GenericContainerNamespace::GenericContainer; + using GC_namespace::GenericContainer; class PythonicSpline : public Spline { public: diff --git a/submodules/GenericContainer b/submodules/GenericContainer index 9981c6f2..4a7b99c1 160000 --- a/submodules/GenericContainer +++ b/submodules/GenericContainer @@ -1 +1 @@ -Subproject commit 9981c6f2c2face076b2b1de5e9313eeca02b5dae +Subproject commit 4a7b99c129f45b1dfeff830ed67ccf0114a41f1b diff --git a/submodules/Utils b/submodules/Utils index 039231f3..d23c8cb4 160000 --- a/submodules/Utils +++ b/submodules/Utils @@ -1 +1 @@ -Subproject commit 039231f3454124fcbd01f7b2b345d531aff371c6 +Subproject commit d23c8cb4306b7ca7e7bc48a637b7aa607cea4d61 diff --git a/submodules/quarticRootsFlocke b/submodules/quarticRootsFlocke index 9e41d762..470fa4ff 160000 --- a/submodules/quarticRootsFlocke +++ b/submodules/quarticRootsFlocke @@ -1 +1 @@ -Subproject commit 9e41d7626750af57747aca30f66a1a21b6660392 +Subproject commit 470fa4ffc81ec20258c6bc7d3db682d12f4a609f diff --git a/tests/test1.cc b/tests/test1.cc index 63e5ee64..eb2caaa7 100644 --- a/tests/test1.cc +++ b/tests/test1.cc @@ -50,7 +50,7 @@ static real_type xx4[] = { 595, 635, 695, 795, 855, 875, 895, 915, static real_type yy4[] = { 0.644, 0.652, 0.644, 0.694, 0.907, 1.336, 2.169, 1.598, 0.916, 0.607, 0.603, 0.608 }; // toolpath -static real_type xx5[] = { 0.11, 0.12, 0.15, 0.16 }; +static real_type xx5[] = { 0.11, 0.12, 0.15, 0.16 }; static real_type yy5[] = { 0.0003, 0.0003, 0.0004, 0.0004 }; static integer n[] = { 11, 11, 11, 9, 12, 4 }; @@ -96,28 +96,46 @@ main() { real_type xmin = xx[0]; real_type xmax = xx[n[k]-1]; - #define SAVE(S) \ - cout << #S": n[k] = " << n[k] << '\n'; \ - S.clear(); \ - S.reserve(n[k]); \ + #define SAVE(NAME,S) \ + cout << "\n\n\n" << NAME << "\n\n\n"; \ + cout << #S": n[k] = " << n[k] << '\n'; \ + S.clear(); \ + S.reserve(n[k]); \ for ( integer i = 0; i < integer(n[k]); ++i ) S.pushBack(xx[i],yy[i]); \ - S.build(); /*( xx, yy, n[k] );*/ \ - cout << #S": xMin = " << S.xMin() << '\n'; \ - cout << #S": xMax = " << S.xMax() << '\n'; \ - cout << #S": xx[0] = " << xx[0] << '\n'; \ - cout << #S": xx[end] = " << xx[n[k]-1] << '\n'; \ - file_##S << "x\ty\tDy\tDDy\n"; \ - for ( real_type x = xmin; x <= xmax; x += (xmax-xmin)/1000 ) \ + S.build(); /*( xx, yy, n[k] );*/ \ + { \ + integer i_min_pos; \ + real_type x_min_pos; \ + real_type y_min; \ + integer i_max_pos; \ + real_type x_max_pos; \ + real_type y_max; \ + S.y_min_max( \ + i_min_pos, x_min_pos, y_min, i_max_pos, x_max_pos, y_max \ + ); \ + cout << "i_min_pos = " << i_min_pos << "\n"; \ + cout << "x_min_pos = " << x_min_pos << "\n"; \ + cout << "y_min = " << y_min << "\n"; \ + cout << "i_max_pos = " << i_max_pos << "\n"; \ + cout << "x_max_pos = " << x_max_pos << "\n"; \ + cout << "y_max = " << y_max << "\n"; \ + } \ + cout << #S": xMin = " << S.xMin() << '\n'; \ + cout << #S": xMax = " << S.xMax() << '\n'; \ + cout << #S": xx[0] = " << xx[0] << '\n'; \ + cout << #S": xx[end] = " << xx[n[k]-1] << '\n'; \ + file_##S << "x\ty\tDy\tDDy\n"; \ + for ( real_type x = xmin; x <= xmax; x += (xmax-xmin)/1000 ) \ file_##S << x << '\t' << S(x) << '\t' << S.D(x) << '\t' << S.DD(x) << '\n'; \ file_##S.close() - SAVE(li); - SAVE(co); - SAVE(ak); - SAVE(cs); - SAVE(be); - SAVE(pc); - SAVE(qs); + SAVE("LinearSpline", li); + SAVE("ConstantSpline", co); + SAVE("AkimaSpline", ak); + SAVE("CubicSpline", cs); + SAVE("BesselSpline", be); + SAVE("PchipSpline", pc); + SAVE("QuinticSpline", qs); } cout << "\nALL DONE!\n\n"; } diff --git a/tests/test10.cc b/tests/test10.cc index 8ffa2ec9..fe24ec15 100644 --- a/tests/test10.cc +++ b/tests/test10.cc @@ -57,7 +57,7 @@ main() { Splines::SplineSurf * _p_spline; _p_spline = new BiQuinticSpline(); - int ldZ = ny; + int ldZ = nx; _p_spline->build(x, 1, y, 1, z, ldZ, nx, ny, false, false); _p_spline->writeToStream(cout); diff --git a/toolbox/CompileSplinesLib.m b/toolbox/CompileSplinesLib.m index 8d79f12d..c5a8c595 100644 --- a/toolbox/CompileSplinesLib.m +++ b/toolbox/CompileSplinesLib.m @@ -15,6 +15,7 @@ LIB_NAMES = { ... 'Console.cc', ... 'fmt.cc', ... + 'rang.cc', ... 'GenericContainer.cc', ... 'GenericContainerCinterface.cc', ... 'GenericContainerMatlabInterface.cc', ... diff --git a/toolbox/icon.pdf b/toolbox/icon.pdf new file mode 100644 index 00000000..c9107fcb Binary files /dev/null and b/toolbox/icon.pdf differ diff --git a/toolbox/icon.png b/toolbox/icon.png new file mode 100644 index 00000000..482f2569 Binary files /dev/null and b/toolbox/icon.png differ diff --git a/toolbox/icon.svg b/toolbox/icon.svg new file mode 100644 index 00000000..ca3f2eac --- /dev/null +++ b/toolbox/icon.svg @@ -0,0 +1,357084 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toolbox/lib/BaseHermite.m b/toolbox/lib/BaseHermite.m index 2fefc416..f5679392 100644 --- a/toolbox/lib/BaseHermite.m +++ b/toolbox/lib/BaseHermite.m @@ -1,447 +1,571 @@ classdef BaseHermite < handle methods - + %> + %> Build a matlab object storing Hermite base evaluator + %> function self = BaseHermite() - % - % Build a matlab object storing Hermite base evaluator - % end function delete(self) - % - % Destroy a matlab object storing Hermite base evaluator - % end - % % -------------------------------------------------------------------- - % + %> + %> Evaluate an Hermite base (cubic degree) at point(s) t for the interval + %> \f$ [0,1] \f$ (or \f$ [0,H] \f$ if second argument + %> is present). + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> BASE = object.base( t ) % base for the interval [0,1] + %> BASE = object.base( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> + %> BASE is a matrix length(t) x 4 whose columns are the values of + %> the Hermite base. + %> + %> \rst + %> + %> .. math:: + %> + %> \begin{eqnarray} + %> h_1(t) &=& x^2(3-2x) \\ + %> h_0(t) &=& 1-h_1(t) \\ + %> h_2(t) &=& x(x(x-2)+1) \\ + %> h_3(t) &=& x^2(x-1) + %> \end{eqnarray} + %> + %> \endrst + %> + %> basis can be returned in separated vectors + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [h0,h1,h2,h3] = object.base( t ) % base for the interval [0,1] + %> [h0,h1,h2,h3] = object.base( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> function varargout = base( ~, varargin ) - % - % Evaluate an Hermite base (cubic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base( t ) % base for the interval [0,1] - % BASE = object.base( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 4 whose columns are the values of - % the Hermite base. - % - % .. math:: - % - % \begin{eqnarray} - % h_1(t) &=& x^2(3-2x) \\ - % h_0(t) &=& 1-h_1(t) \\ - % h_2(t) &=& x(x(x-2)+1) \\ - % h_3(t) &=& x^2(x-1) - % \end{eqnarray} - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3] = object.base( t ) % base for the interval [0,1] - % [h0,h1,h2,h3] = object.base( t, H ) % base for the interval [0,H] - % [varargout{1:nargout}] = BaseHermiteWrapper('base',varargin{:}); end % -------------------------------------------------------------------- - function varargout = base_D( ~, varargin )1 - % - % Evaluate an Hermite base derivative at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base_D( t ) % base derivative for the interval [0,1] - % BASE = object.base_D( t, H ) % base derivative for the interval [0,H] - % - % BASE is a matrix length(t) x 4 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3] = object.base_D( t ) % base derivative for the interval [0,1] - % [h0,h1,h2,h3] = object.base_D( t, H ) % base derivative for the interval [0,H] - % + %> + %> Evaluate an Hermite base derivative at point(s) t for the interval + %> \f$ [0,1] \f$ (or \f$ [0,H] \f$ if second argument + %> is present). + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> BASE = object.base_D( t ) % base derivative for the interval [0,1] + %> BASE = object.base_D( t, H ) % base derivative for the interval [0,H] + %> + %> \endrst + %> + %> BASE is a matrix length(t) x 4 whose columns are the values of + %> the Hermite base. + %> + %> basis can be returned in separated vectors + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [h0,h1,h2,h3] = object.base_D( t ) % base derivative for the interval [0,1] + %> [h0,h1,h2,h3] = object.base_D( t, H ) % base derivative for the interval [0,H] + %> + %> \endrst + %> + function varargout = base_D( ~, varargin ) [varargout{1:nargout}] = BaseHermiteWrapper('base_D',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate an Hermite base second derivative at point(s) t for the interval + %> \f$ [0,1] \f$ (or \f$ [0,H] \f$ if second argument is present). + %> + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> BASE = object.base_DD( t ) % base second derivative for the interval [0,1] + %> BASE = object.base_DD( t, H ) % base second derivative for the interval [0,H] + %> + %> \endrst + %> + %> BASE is a matrix length(t) x 4 whose columns are the values of + %> the Hermite base. + %> + %> basis can be returned in separated vectors + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [h0,h1,h2,h3] = object.base_DD( t ) % base second derivative for the interval [0,1] + %> [h0,h1,h2,h3] = object.base_DD( t, H ) % base second derivative for the interval [0,H] + %> + %> \endrst + %> function varargout = base_DD( ~, varargin ) - % - % Evaluate an Hermite base second derivative at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base_DD( t ) % base second derivative for the interval [0,1] - % BASE = object.base_DD( t, H ) % base second derivative for the interval [0,H] - % - % BASE is a matrix length(t) x 4 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3] = object.base_DD( t ) % base second derivative for the interval [0,1] - % [h0,h1,h2,h3] = object.base_DD( t, H ) % base second derivative for the interval [0,H] - % [varargout{1:nargout}] = BaseHermiteWrapper('base_DD',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate an Hermite base third derivative at point(s) t for the interval + %> \f$ [0,1] \f$ (or \f$ [0,H] \f$ if second argument is present). + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> BASE = object.base_DDD( t ) % base third derivative for the interval [0,1] + %> BASE = object.base_DDD( t, H ) % base third derivative for the interval [0,H] + %> + %> \endrst + %> + %> BASE is a matrix length(t) x 4 whose columns are the values of the Hermite base. + %> + %> basis can be returned in separated vectors + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [h0,h1,h2,h3] = object.base_DDD( t ) % base third derivative for the interval [0,1] + %> [h0,h1,h2,h3] = object.base_DDD( t, H ) % base third derivative for the interval [0,H] + %> + %> \endrst + %> function varargout = base_DDD( ~, varargin ) - % - % Evaluate an Hermite base third derivative at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base_DDD( t ) % base third derivative for the interval [0,1] - % BASE = object.base_DDD( t, H ) % base third derivative for the interval [0,H] - % - % BASE is a matrix length(t) x 4 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3] = object.base_DDD( t ) % base third derivative for the interval [0,1] - % [h0,h1,h2,h3] = object.base_DDD( t, H ) % base third derivative for the interval [0,H] - % [varargout{1:nargout}] = BaseHermiteWrapper('base_DDD',varargin{:}); end - % % -------------------------------------------------------------------- - % + %> + %> Evaluate the cubic polynomial defined on Hermite data: + %> + %> \rst + %> + %> .. math:: + %> + %> \begin{eqnarray} + %> \mathbf{p}(t) &=& h_0(t)\mathbf{p}_0+ h_1(t)\mathbf{p}_1+ h_2(t)\mathbf{t}_0+ h_3(t)\mathbf{t}_1 \\ + %> \mathbf{p}(t,H) &=& h_0(t/H)\mathbf{p}_0+ h_1(t/H)\mathbf{p}_1+ H (h_2(t/H)\mathbf{t}_0+ h_3(t/H)\mathbf{t}_1) + %> \end{eqnarray} + %> + %> .. code-block:: matlab + %> + %> values = object.eval( t, P0, P1, T0, T1 ) + %> values = object.eval( t, P0, P1, T0, T1, H ) + %> + %> \endrst + %> function P = eval( ~, varargin ) - % - % Evaluate the cubic polynomial defined on Hermite data: - % - % .. math:: - % - % \begin{eqnarray} - % \mathbf{p}(t) &=& h_0(t)\mathbf{p}_0+ h_1(t)\mathbf{p}_1+ h_2(t)\mathbf{t}_0+ h_3(t)\mathbf{t}_1 \\ - % \mathbf{p}(t,H) &=& h_0(t/H)\mathbf{p}_0+ h_1(t/H)\mathbf{p}_1+ H (h_2(t/H)\mathbf{t}_0+ h_3(t/H)\mathbf{t}_1) - % \end{eqnarray} - % - % .. code-block:: matlab - % - % values = object.eval( t, P0, P1, T0, T1 ) - % values = object.eval( t, P0, P1, T0, T1, H ) - % P = BaseHermiteWrapper('eval',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate the derivative \f$ \mathbf{p}'(t) \f$ of the cubic + %> polynomial defined on Hermite data: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> values = object.eval_D( t, P0, P1, T0, T1 ) + %> values = object.eval_D( t, P0, P1, T0, T1, H ) + %> + %> \endrst + %> function dP = eval_D( ~, varargin ) - % - % Evaluate the derivative :math:`\mathbf{p}'(t)` of the cubic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval_D( t, P0, P1, T0, T1 ) - % values = object.eval_D( t, P0, P1, T0, T1, H ) - % dP = BaseHermiteWrapper('eval_D',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate the second derivative \f$ \mathbf{p}''(t) \f$ of + %> the cubic polynomial defined on Hermite data: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> values = object.eval_DD( t, P0, P1, T0, T1 ) + %> values = object.eval_DD( t, P0, P1, T0, T1, H ) + %> + %> \endrst + %> function ddP = eval_DD( ~, varargin ) - % - % Evaluate the second derivative :math:`\mathbf{p}''(t)` of the cubic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval_DD( t, P0, P1, T0, T1 ) - % values = object.eval_DD( t, P0, P1, T0, T1, H ) - % ddP = BaseHermiteWrapper('eval_DD',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate the third derivative \f$ \mathbf{p}'''(t) \f$ of the + %> cubic polynomial defined on Hermite data: + %> + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> values = object.eval_DDD( t, P0, P1, T0, T1 ) + %> values = object.eval_DDD( t, P0, P1, T0, T1, H ) + %> + %> \endrst + %> function dddP = eval_DDD( ~, varargin ) - % - % Evaluate the third derivative :math:`\mathbf{p}'''(t)` of the cubic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval_DDD( t, P0, P1, T0, T1 ) - % values = object.eval_DDD( t, P0, P1, T0, T1, H ) - % dddP = BaseHermiteWrapper('eval_DDD',varargin{:}); end - % % -------------------------------------------------------------------- - % + %> + %> Evaluate an Hermite base (quintic degree) at point(s) t for the interval + %> \f$ [0,1] \f$ (or \f$ [0,H] \f$ if second argument is present). + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> BASE = object.base5( t ) % base for the interval [0,1] + %> BASE = object.base5( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> + %> BASE is a matrix length(t) x 6 whose columns are the values of + %> the Hermite base that are 6 polynomials of degree 5 with the properties + %> + %> \rst + %> + %> .. math:: + %> + %> \begin{equation} + %> \begin{array}{cccccc} + %> h_1(0) = 1 & h_1(1) = 0 & h'_1(0) = 1 & h'_1(1) = 0 & h''_1(1) = 1 & h''_1(1) = 0 \\ + %> h_0(0) = 0 & h_0(1) = 1 & h'_0(0) = 0 & h'_0(1) = 0 & h''_0(1) = 0 & h''_0(1) = 0 \\ + %> h_2(0) = 0 & h_2(1) = 0 & h'_2(0) = 1 & h'_2(1) = 0 & h''_2(1) = 0 & h''_2(1) = 0 \\ + %> h_3(0) = 0 & h_3(1) = 0 & h'_3(0) = 0 & h'_3(1) = 1 & h''_3(1) = 0 & h''_3(1) = 0 \\ + %> h_4(0) = 0 & h_4(1) = 0 & h'_4(0) = 0 & h'_4(1) = 0 & h''_4(1) = 1 & h''_4(1) = 0 \\ + %> h_5(0) = 0 & h_5(1) = 0 & h'_5(0) = 0 & h'_5(1) = 0 & h''_5(1) = 0 & h''_5(1) = 1 \\ + %> \end{array} + %> \end{equation} + %> + %> \endrst + %> + %> basis can be returned in separated vectors + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [h0,h1,h2,h3,h4,h5] = object.base5( t ) % base for the interval [0,1] + %> [h0,h1,h2,h3,h4,h5] = object.base5( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> function varargout = base5( ~, varargin ) - % - % Evaluate an Hermite base (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5( t ) % base for the interval [0,1] - % BASE = object.base5( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base that are 6 polynomials of degree 5 with the properties - % - % .. math:: - % - % \begin{equation} - % \begin{array}{cccccc} - % h_1(0) = 1 & h_1(1) = 0 & h'_1(0) = 1 & h'_1(1) = 0 & h''_1(1) = 1 & h''_1(1) = 0 \\ - % h_0(0) = 0 & h_0(1) = 1 & h'_0(0) = 0 & h'_0(1) = 0 & h''_0(1) = 0 & h''_0(1) = 0 \\ - % h_2(0) = 0 & h_2(1) = 0 & h'_2(0) = 1 & h'_2(1) = 0 & h''_2(1) = 0 & h''_2(1) = 0 \\ - % h_3(0) = 0 & h_3(1) = 0 & h'_3(0) = 0 & h'_3(1) = 1 & h''_3(1) = 0 & h''_3(1) = 0 \\ - % h_4(0) = 0 & h_4(1) = 0 & h'_4(0) = 0 & h'_4(1) = 0 & h''_4(1) = 1 & h''_4(1) = 0 \\ - % h_5(0) = 0 & h_5(1) = 0 & h'_5(0) = 0 & h'_5(1) = 0 & h''_5(1) = 0 & h''_5(1) = 1 \\ - % \end{array} - % \end{equation} - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5( t, H ) % base for the interval [0,H] - % [varargout{1:nargout}] = BaseHermiteWrapper('base5',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate an Hermite base derivatives (quintic degree) at point(s) t for the interval + %> \f$ [0,1] \f$ (or \f$ [0,H] \f$ if second argument is present). + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> BASE = object.base5_D( t ) % base for the interval [0,1] + %> BASE = object.base5_D( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> + %> BASE is a matrix length(t) x 6 whose columns are the values of + %> the Hermite base. + %> + %> basis can be returned in separated vectors + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [h0,h1,h2,h3,h4,h5] = object.base5_D( t ) % base for the interval [0,1] + %> [h0,h1,h2,h3,h4,h5] = object.base5_D( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> function varargout = base5_D( ~, varargin ) - % - % Evaluate an Hermite base derivatives (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5_D( t ) % base for the interval [0,1] - % BASE = object.base5_D( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5_D( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5_D( t, H ) % base for the interval [0,H] - % [varargout{1:nargout}] = BaseHermiteWrapper('base5_D',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate an Hermite base second derivatives (quintic degree) at point(s) t for the interval + %> \f$ [0,1] \f$ (or \f$ [0,H] \f$ if second argument is present). + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> BASE = object.base5_DD( t ) % base for the interval [0,1] + %> BASE = object.base5_DD( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> + %> BASE is a matrix length(t) x 6 whose columns are the values of + %> the Hermite base. + %> + %> basis can be returned in separated vectors + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [h0,h1,h2,h3,h4,h5] = object.base5_DD( t ) % base for the interval [0,1] + %> [h0,h1,h2,h3,h4,h5] = object.base5_DD( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> function varargout = base5_DD( ~, varargin ) - % - % Evaluate an Hermite base second derivatives (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5_DD( t ) % base for the interval [0,1] - % BASE = object.base5_DD( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5_DD( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5_DD( t, H ) % base for the interval [0,H] - % [varargout{1:nargout}] = BaseHermiteWrapper('base5_DD',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate an Hermite base third derivatives (quintic degree) at point(s) + %> t for the interval \f$ [0,1] \f$ (or \f$ [0,H] \f$ if second argument + %> is present). + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> BASE = object.base5_DDD( t ) % base for the interval [0,1] + %> BASE = object.base5_DDD( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> + %> BASE is a matrix length(t) x 6 whose columns are the values of + %> the Hermite base. + %> + %> basis can be returned in separated vectors + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [h0,h1,h2,h3,h4,h5] = object.base5_DDD( t ) % base for the interval [0,1] + %> [h0,h1,h2,h3,h4,h5] = object.base5_DDD( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> function varargout = base5_DDD( ~, varargin ) - % - % Evaluate an Hermite base third derivatives (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5_DDD( t ) % base for the interval [0,1] - % BASE = object.base5_DDD( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5_DDD( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5_DDD( t, H ) % base for the interval [0,H] - % [varargout{1:nargout}] = BaseHermiteWrapper('base5_DDD',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate an Hermite base 4th derivatives (quintic degree) at point(s) + %> t for the interval \f$ [0,1] \f$ (or \f$ [0,H] \f$ if second argument + %> is present). + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> BASE = object.base5_DDDD( t ) % base for the interval [0,1] + %> BASE = object.base5_DDDD( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> + %> BASE is a matrix length(t) x 6 whose columns are the values of + %> the Hermite base. + %> + %> basis can be returned in separated vectors + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [h0,h1,h2,h3,h4,h5] = object.base5_DDDD( t ) % base for the interval [0,1] + %> [h0,h1,h2,h3,h4,h5] = object.base5_DDDD( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> function varargout = base5_DDDD( ~, varargin ) - % - % Evaluate an Hermite base 4th derivatives (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5_DDDD( t ) % base for the interval [0,1] - % BASE = object.base5_DDDD( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5_DDDD( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5_DDDD( t, H ) % base for the interval [0,H] - % [varargout{1:nargout}] = BaseHermiteWrapper('base5_DDDD',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate an Hermite base 5th derivatives (quintic degree) at point(s) + %> t for the interval \f$ [0,1] \f$ (or \f$ [0,H] \f$ if second argument + %> is present). + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> BASE = object.base5_DDDDD( t ) % base for the interval [0,1] + %> BASE = object.base5_DDDDD( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> + %> BASE is a matrix length(t) x 6 whose columns are the values of + %> the Hermite base. + %> + %> basis can be returned in separated vectors + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [h0,h1,h2,h3,h4,h5] = object.base5_DDDDD( t ) % base for the interval [0,1] + %> [h0,h1,h2,h3,h4,h5] = object.base5_DDDDD( t, H ) % base for the interval [0,H] + %> + %> \endrst + %> function varargout = base5_DDDDD( ~, varargin ) - % - % Evaluate an Hermite base 5th derivatives (quintic degree) at point(s) t for the interval - % :math:`[0,1]` (or :math:`[0,H]` if second argument - % is present). - % - % .. code-block:: matlab - % - % BASE = object.base5_DDDDD( t ) % base for the interval [0,1] - % BASE = object.base5_DDDDD( t, H ) % base for the interval [0,H] - % - % BASE is a matrix length(t) x 6 whose columns are the values of - % the Hermite base. - % - % basis can be returned in separated vectors - % - % .. code-block:: matlab - % - % [h0,h1,h2,h3,h4,h5] = object.base5_DDDDD( t ) % base for the interval [0,1] - % [h0,h1,h2,h3,h4,h5] = object.base5_DDDDD( t, H ) % base for the interval [0,H] - % [varargout{1:nargout}] = BaseHermiteWrapper('base5_DDDDD',varargin{:}); end - % % -------------------------------------------------------------------- - % + %> + %> Evaluate the quintic polynomial defined on Hermite data: + %> + %> \rst + %> + %> .. math:: + %> + %> \begin{eqnarray} + %> \mathbf{p}(t) &=& h_0(t)\mathbf{p}_0+ h_1(t)\mathbf{p}_1+ + %> h_2(t)\mathbf{t}_0+ h_3(t)\mathbf{t}_1+ + %> h_4(t)\mathbf{j}_0+ h_5(t)\mathbf{j}_1 \\ + %> \mathbf{p}(t,H) &=& h_0(t/H)\mathbf{p}_0+ h_1(t/H)\mathbf{p}_1+ + %> H (h_2(t/H)\mathbf{t}_0+ h_3(t/H)\mathbf{t}_1)+ + %> H^2 (h_4(t/H)\mathbf{t}_0+ h_5(t/H)\mathbf{j}_1) + %> \end{eqnarray} + %> + %> .. code-block:: matlab + %> + %> values = object.eval5( t, P0, P1, T0, T1, J0, J1 ) + %> values = object.eval5( t, P0, P1, T0, T1, J0, J1, H ) + %> + %> \endrst + %> function P = eval5( ~, varargin ) - % - % Evaluate the quintic polynomial defined on Hermite data: - % - % .. math:: - % - % \begin{eqnarray} - % \mathbf{p}(t) &=& h_0(t)\mathbf{p}_0+ h_1(t)\mathbf{p}_1+ - % h_2(t)\mathbf{t}_0+ h_3(t)\mathbf{t}_1+ - % h_4(t)\mathbf{j}_0+ h_5(t)\mathbf{j}_1 \\ - % \mathbf{p}(t,H) &=& h_0(t/H)\mathbf{p}_0+ h_1(t/H)\mathbf{p}_1+ - % H (h_2(t/H)\mathbf{t}_0+ h_3(t/H)\mathbf{t}_1)+ - % H^2 (h_4(t/H)\mathbf{t}_0+ h_5(t/H)\mathbf{j}_1) - % \end{eqnarray} - % - % .. code-block:: matlab - % - % values = object.eval5( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5( t, P0, P1, T0, T1, J0, J1, H ) - % P = BaseHermiteWrapper('eval5',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate the derivative \f$ \mathbf{p}'(t) \f$ of the + %> quintic polynomial defined on Hermite data: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> values = object.eval5_D( t, P0, P1, T0, T1, J0, J1 ) + %> values = object.eval5_D( t, P0, P1, T0, T1, J0, J1, H ) + %> + %> \endrst + %> function dP = eval5_D( ~, varargin ) - % - % Evaluate the derivative :math:`\mathbf{p}'(t)` of the quintic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval5_D( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5_D( t, P0, P1, T0, T1, J0, J1, H ) - % dP = BaseHermiteWrapper('eval5_D',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate the second derivative \f$ \mathbf{p}''(t) \f$ of + %> the quintic polynomial defined on Hermite data: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> values = object.eval5_DD( t, P0, P1, T0, T1, J0, J1 ) + %> values = object.eval5_DD( t, P0, P1, T0, T1, J0, J1, H ) + %> + %> \endrst + %> function ddP = eval5_DD( ~, varargin ) - % - % Evaluate the second derivative :math:`\mathbf{p}''(t)` of the quintic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval5_DD( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5_DD( t, P0, P1, T0, T1, J0, J1, H ) - % ddP = BaseHermiteWrapper('eval5_DD',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate the third derivative \f$ \mathbf{p}'''(t) \f$ of + %> the quintic polynomial defined on Hermite data: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> values = object.eval5_DDD( t, P0, P1, T0, T1, J0, J1 ) + %> values = object.eval5_DDD( t, P0, P1, T0, T1, J0, J1, H ) + %> + %> \endrst + %> function dddP = eval5_DDD( ~, varargin ) - % - % Evaluate the third derivative :math:`\mathbf{p}'''(t)` of the quintic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval5_DDD( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5_DDD( t, P0, P1, T0, T1, J0, J1, H ) - % dddP = BaseHermiteWrapper('eval5_DDD',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate the 4th derivative \f$ \mathbf{p}''''(t) \f$ of the + %> quintic polynomial defined on Hermite data: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> values = object.eval5_DDDD( t, P0, P1, T0, T1, J0, J1 ) + %> values = object.eval5_DDDD( t, P0, P1, T0, T1, J0, J1, H ) + %> + %> \endrst + %> function ddddP = eval5_DDDD( ~, varargin ) - % - % Evaluate the 4th derivative :math:`\mathbf{p}''''(t)` of the quintic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval5_DDDD( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5_DDDD( t, P0, P1, T0, T1, J0, J1, H ) - % ddddP = BaseHermiteWrapper('eval5_DDDD',varargin{:}); end % -------------------------------------------------------------------- + %> + %> Evaluate the 5th derivative \f$ \mathbf{p}'''''(t) \f$ of the + %> quintic polynomial defined on Hermite data: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> values = object.eval5_DDDDD( t, P0, P1, T0, T1, J0, J1 ) + %> values = object.eval5_DDDDD( t, P0, P1, T0, T1, J0, J1, H ) + %> + %> \endrst + %> function dddddP = eval5_DDDDD( ~, varargin ) - % - % Evaluate the 5th derivative :math:`\mathbf{p}'''''(t)` of the quintic polynomial defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.eval5_DDDDD( t, P0, P1, T0, T1, J0, J1 ) - % values = object.eval5_DDDDD( t, P0, P1, T0, T1, J0, J1, H ) - % dddddP = BaseHermiteWrapper('eval5_DDDDD',varargin{:}); end - % % -------------------------------------------------------------------- - % + %> + %> Given the cubic polynomial defined on Hermite data: + %> + %> \rst + %> + %> .. math:: + %> + %> \mathbf{p}(t) = + %> h_0(t)\mathbf{p}_0 + h_1(t)\mathbf{p}_1 + + %> h_2(t)\mathbf{t}_0 + h_3(t)\mathbf{t}_1 + %> + %> \endrst + %> + %> return the Bezier polynomial of the same cubic + %> function [P0,P1,P2,P3] = hermite_to_bezier( ~, p0, p1, t0, t1 ) - % - % Given the cubic polynomial defined on Hermite data: - % - % .. math:: - % - % \mathbf{p}(t) = h_0(t)\mathbf{p}_0+ h_1(t)\mathbf{p}_1+ h_2(t)\mathbf{t}_0+ h_3(t)\mathbf{t}_1 - % - % return the Bezier polynomial of the same cubic - % [P0,P1,P2,P3] = BaseHermiteWrapper('hermite_to_bezier',p0, p1, t0, t1); end % -------------------------------------------------------------------- + %> + %> Given the cubic polynomial defined with Bezier polygon + %> return the Hermite data for the same polynomial + %> function [P0,P1,T0,T1] = bezier_to_hermite( ~, p0, p1, p2, p3 ) - % - % Given the cubic polynomial defined with Bezier polygon - % return the Hermite data for the same polynomial - % [P0,P1,T0,T1] = BaseHermiteWrapper('bezier_to_hermite',p0, p1, p2, p3); end % @@ -462,32 +586,41 @@ function delete(self) D3 = sqrtD3*sqrtD3.'; end % -------------------------------------------------------------------- + %> + %> Approximate the length of the cubic polynomial \f$ \mathbf{p}(t) \f$ + %> defined on Hermite data: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> values = object.approximate_length( t, P0, P1, T0, T1 ) + %> values = object.approximate_length( t, P0, P1, T0, T1, H ) + %> + %> \endrst + %> + %> The length is approximated usin 100 linear segment. + %> function L = approximate_length( ~, varargin ) - % - % Approximate the length of the cubic polynomial :math:`\mathbf{p}(t)` defined on Hermite data: - % - % .. code-block:: matlab - % - % values = object.approximate_length( t, P0, P1, T0, T1 ) - % values = object.approximate_length( t, P0, P1, T0, T1, H ) - % - % The length is approximated usin 100 linear segment. - % L = BaseHermiteWrapper( 'approximate_length', varargin{:} ); end % -------------------------------------------------------------------- + %> + %> Cut the cubic polynomial \f$ \mathbf{p}(t) \f$ defined on Hermite data + %> on the interval [a,b] and return the new Hermite data + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> [new_P0,new_P1,new_T0,new_T1] = object.cut( a, b, P0, P1, T0, T1 ) + %> [new_P0,new_P1,new_T0,new_T1] = object.cut( a, b, P0, P1, T0, T1, H ) + %> + %> \endrst + %> + %> The parametrization of the new Hermite data is on [0,1] + %> function [P0,P1,T0,T1] = cut( ~, varargin ) - % - % Cut the cubic polynomial :math:`\mathbf{p}(t)` defined on Hermite data - % on the interval [a,b] and return the new Hermite data - % - % .. code-block:: matlab - % - % [new_P0,new_P1,new_T0,new_T1] = object.cut( a, b, P0, P1, T0, T1 ) - % [new_P0,new_P1,new_T0,new_T1] = object.cut( a, b, P0, P1, T0, T1, H ) - % - % The parametrization of the new Hermite data is on [0,1] - % [P0,P1,T0,T1] = BaseHermiteWrapper( 'cut', varargin{:} ); end end diff --git a/toolbox/lib/Spline1D.m b/toolbox/lib/Spline1D.m index e43bece6..49b11a7a 100644 --- a/toolbox/lib/Spline1D.m +++ b/toolbox/lib/Spline1D.m @@ -1,13 +1,41 @@ -classdef Spline1D < handle - %% MATLAB class wrapper for the underlying C++ class + %> + %> MATLAB class wrapper for the underlying C++ class + %> + classdef Spline1D < handle properties (SetAccess = private, Hidden = true) - objectHandle; % Handle to the underlying C++ class instance + %> Handle to the underlying C++ class instance + objectHandle; end methods % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Build a spline given a table of point and type: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> % build a spline given points and spline spline + %> obj = Spline1D( x, y, kind ); + %> % build Hermite type spline (do not use kind) + %> obj = Spline1D( x, y, yp ); + %> + %> \endrst + %> + %> Kind is a string and can be any of + %> + %> | kind | meaning | + %> | :----------- | :------------------------------------------------------- | + %> | 'linear' | linear spline (only continuous) | + %> | 'cubic' | cubic spline (\f$ C^2 \f$ function) | + %> | 'akima' | Akima non oscillatory spline (\f$ C^1 \f$ function) | + %> | 'bessel' | bessel non oscillatory spline (\f$ C^1 \f$ function) | + %> | 'pchip' | Monotone \f$ C^1 \f$ function | + %> | 'hermite' | Hermite spline (set \f$ p_k \f$ and \f$ p'_k \f$) | + %> | 'quintic' | Quintic spline (\f$ C^3 \f$ function) | + %> function self = Spline1D( kind, varargin ) - % kind [, t, pnts, subtype ] self.objectHandle = Spline1DMexWrapper( 'new', kind ); if nargin > 1 Spline1DMexWrapper( 'build', self.objectHandle, varargin{:} ); @@ -15,15 +43,58 @@ end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function delete(self) - % Destroy the C++ class instance Spline1DMexWrapper( 'delete', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Build a spline given a table of point and type: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> obj.build( x, y, kind ); + %> + %> obj.build( x, y, yp ); % build Hermite type spline + %> + %> \endrst + %> function build( self, varargin ) - % x, y [, yp or subtype] + %> x, y [, yp or subtype] Spline1DMexWrapper( 'build', self.objectHandle, varargin{:} ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Search the max and min values of `y` along the spline + %> with the corresponding `x` position + %> + %> - [out] i_min_pos where is the minimum (interval) + %> - [out] x_min_pos where is the minimum + %> - [out] y_min the minimum value + %> - [out] i_max_pos where is the maximum (interval) + %> - [out] x_max_pos where is the maximum + %> - [out] y_max the maximum value + %> + function [ i_min_pos, x_min_pos, y_min, i_max_pos, x_max_pos, y_max] = eval_y_min_max( self ) + [ i_min_pos, x_min_pos, y_min, i_max_pos x_max_pos, y_max] = Spline1DMexWrapper( 'y_min_max', self.objectHandle ); + end + % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline at `x` returning vaues and derivatives + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p = obj.eval( x ); + %> [p,p_D] = obj.eval( x ); + %> [p,p_D,p_DD] = obj.eval( x ); + %> [p,p_D,p_DD,p_DDD] = obj.eval( x ); + %> [p,p_D,p_DD,p_DDD,p_DDDD] = obj.eval( x ); + %> [p,p_D],p_DD,p_DDD,p_DDDD,p_DDDDD] = obj.eval( x ); + %> + %> \endrst + %> function varargout = eval( self, x ) varargout{1} = Spline1DMexWrapper( 'eval', self.objectHandle, x ); if nargout >= 2 @@ -43,90 +114,335 @@ function build( self, varargin ) end end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_D = obj.eval_D( x ); + %> + %> \endrst + %> function dp = eval_D( self, x ) dp = Spline1DMexWrapper( 'eval_D', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline second derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_DD = obj.eval_DD( x ); + %> + %> \endrst + %> function ddp = eval_DD( self, x ) ddp = Spline1DMexWrapper( 'eval_DD', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline third derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_DDD = obj.eval_DDD( x ); + %> + %> \endrst + %> function dddp = eval_DDD( self, x ) dddp = Spline1DMexWrapper( 'eval_DDD', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline 4th derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_DDDD = obj.eval_DDDD( x ); + %> + %> \endrst + %> function ddddp = eval_DDDD( self, x ) ddddp = Spline1DMexWrapper( 'eval_DDDD', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline 5th derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_DDDDD = obj.eval_DDDDD( x ); + %> + %> \endrst + %> function dddddp = eval_DDDDD( self, x ) dddddp = Spline1DMexWrapper( 'eval_DDDDD', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Set spline as closed + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> obj.make_closed(); + %> + %> \endrst + %> function make_closed( self ) Spline1DMexWrapper( 'make_closed', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Set spline as opened + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> obj.make_opened(); + %> + %> \endrst + %> function make_opened( self ) Spline1DMexWrapper( 'make_opened', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return true if spline is of closed type + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> ok = obj.is_closed(); + %> + %> \endrst + %> function ok = is_closed( self ) ok = Spline1DMexWrapper( 'is_closed', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Make spline computable only in the range is defined. + %> If `x` is outside range an error is produced. + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> obj.make_bounded(); + %> + %> \endrst + %> function make_bounded( self ) Spline1DMexWrapper( 'make_bounded', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Make spline computable outside the range is defined. + %> If `x` is outside range value is extrapolated. + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> obj.make_unbounded(); + %> + %> \endrst + %> function make_unbounded( self ) Spline1DMexWrapper( 'make_unbounded', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Check if spline is computable only in the range is defined. + %> Return true if can be computed only in the range. + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> ok = obj.is_bounded(); + %> + %> \endrst + %> function ok = is_bounded( self ) ok = Spline1DMexWrapper( 'is_bounded', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Set extrapolation outside the range as a constant spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> obj.make_extended_constant(); + %> + %> \endrst + %> function make_extended_constant( self ) Spline1DMexWrapper( 'make_extended_constant', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Set extrapolation outside the range as a polynomial + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> obj.make_extended_not_constant(); + %> + %> \endrst + %> function make_extended_not_constant( self ) Spline1DMexWrapper( 'make_extended_not_constant', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Check if extrapolation outside the range as a polynomial + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> ok = obj.is_extended_constant(); + %> + %> \endrst + %> function ok = is_extended_constant( self ) ok = Spline1DMexWrapper( 'is_extended_constant', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return initial x-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> x = obj.xBegin(); + %> + %> \endrst + %> function x = xBegin( self ) x = Spline1DMexWrapper( 'xBegin', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return final x-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> x = obj.xEnd(); + %> + %> \endrst + %> function x = xEnd( self ) x = Spline1DMexWrapper( 'xEnd', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return initial y-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> y = obj.yBegin(); + %> + %> \endrst + %> function y = yBegin( self ) y = Spline1DMexWrapper( 'yBegin', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return final y-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> y = obj.yEnd(); + %> + %> \endrst + %> function y = yEnd( self ) y = Spline1DMexWrapper( 'yEnd', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return minimum x-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> x = obj.xMin(); + %> + %> \endrst + %> function x = xMin( self ) x = Spline1DMexWrapper( 'xMin', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return maximum x-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> x = obj.xMax(); + %> + %> \endrst + %> function x = xMax( self ) x = Spline1DMexWrapper( 'xMax', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return minimum y-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> y = obj.yMin(); + %> + %> \endrst + %> function y = yMin( self ) y = Spline1DMexWrapper( 'yMin', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return maximum y-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> y = obj.yMax(); + %> + %> \endrst + %> function y = yMax( self ) y = Spline1DMexWrapper( 'yMax', self.objectHandle ); end diff --git a/toolbox/lib/Spline2D.m b/toolbox/lib/Spline2D.m index 0bb0a20c..a273a52c 100644 --- a/toolbox/lib/Spline2D.m +++ b/toolbox/lib/Spline2D.m @@ -1,11 +1,89 @@ +%> +%> MATLAB class wrapper for the underlying C++ class. +%> +%> The construction of the 2D spline is done as follows +%> +%> - instantiate the spline object +%> +%> \rst +%> +%> .. code-block:: matlab +%> +%> spl = Spline2D( kind, X, Y, ZZ ); +%> % or +%> spl = Spline2D( kind ); +%> spl.build( X, Y, ZZ ); +%> +%> \endrst +%> +%> `kind` is a string and can be any of +%> +%> | kind | meaning | +%> | :----------- | :------------------------------------------------------- | +%> | 'bilinear' | piecewise linear in X e Y direction | +%> | 'cubic' | piecewise cubic in X e Y direction | +%> | 'akima' | piecewise cubic with Akima non oscillatory construction | +%> | 'biquintic' | piecewise quintic in X e Y direction | +%> +%> Evaluation is simple +%> +%> +%> \rst +%> +%> .. code-block:: matlab +%> +%> Z = spl.eval( X, Y ); +%> +%> \endrst +%> +%> where `X` and `Y` are scalar or vector or matrix of the same size. +%> the result `Z` is scalar or vector or matrix of the same size of the inputs. +%> +%> **example of usage** +%> +%> \rst +%> +%> .. code-block:: matlab +%> +%> X = -2:0.01:2; +%> Y = -2:0.01:2; +%> [XX,YY] = ndgrid(X,Y); +%> ZZ = peaks(XX,YY); +%> spl = Spline2D('bicubic',X,Y,ZZ); +%> +%> surf(XX,YY,ZZ), view(145,-2), set(gca,'Fontsize',16); +%> +%> X = -2:0.1:2; +%> Y = -2:0.1:2; +%> [XX,YY] = ndgrid(X,Y); +%> +%> ZZ = spl.eval(XX,YY); +%> +%> .. image:: ../../images/exampleSurf.png +%> :width: 80% +%> :align: center +%> +%> \endrst +%> classdef Spline2D < handle - %% MATLAB class wrapper for the underlying C++ class properties (SetAccess = private, Hidden = true) objectHandle; % Handle to the underlying C++ class instance end methods % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Build a spline given a table of point and type: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl = Spline2D( kind ); % initialize + %> spl = Spline2D( kind, X, Y, Z ); % initialize and build + %> + %> \endrst + %> function self = Spline2D( name, varargin ) self.objectHandle = Spline2DMexWrapper( 'new', name ); if nargin > 1 @@ -15,14 +93,42 @@ end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function delete(self) - % Destroy the C++ class instance Spline2DMexWrapper( 'delete', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Build a spline given a table of point and type: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.build( X, Y, Z ); + %> + %> \endrst + %> + %> `X` and `Y` are vector `Z` is a matrix `nx x ny` + %> + %> function build( self, x, y, z ) Spline2DMexWrapper( 'build', self.objectHandle, x, y ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline (and its derivatives) at (x,y) + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> P = spl.eval( x, y ); + %> [P,Px,Py] = spl.eval( x, y ); + %> [P,Px,Py,Pxx,Pxy,Pyy] = spl.eval( x, y ); + %> + %> \endrst + %> + %> `x` and `y` are salar or vector or matrix of the same size + %> function varargout = eval( self, x, y ) varargout{1} = Spline2DMexWrapper( 'eval', self.objectHandle, x, y ); if nargout >= 3 @@ -39,71 +145,273 @@ function build( self, x, y, z ) end end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline `x` derivative at (x,y) + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> Dx = spl.eval_Dx( x, y ); + %> + %> \endrst + %> + %> `x` and `y` are salar or vector or matrix of the same size + %> function Dx = eval_Dx( self, x, y ) Dx = Spline2DMexWrapper( 'eval_Dx', self.objectHandle, x, y ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline `y` derivative at (x,y) + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> Dy = spl.eval_Dy( x, y ); + %> + %> \endrst + %> + %> `x` and `y` are salar or vector or matrix of the same size + %> function Dy = eval_Dy( self, x, y ) Dy = Spline2DMexWrapper( 'eval_Dy', self.objectHandle, x, y ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline `x` second derivative at (x,y) + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> Dxx = spl.eval_Dxx( x, y ); + %> + %> \endrst + %> + %> `x` and `y` are salar or vector or matrix of the same size + %> function Dxx = eval_Dxx( self, x, y ) Dxx = Spline2DMexWrapper( 'eval_Dxx', self.objectHandle, x, y ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline `xy` second derivative at (x,y) + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> Dxy = spl.eval_Dxy( x, y ); + %> + %> \endrst + %> + %> `x` and `y` are salar or vector or matrix of the same size + %> function Dxy = eval_Dxy( self, x, y ) Dxy = Spline2DMexWrapper( 'eval_Dxy', self.objectHandle, x, y ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline `y` second derivative at (x,y) + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> Dyy = spl.eval_Dyy( x, y ); + %> + %> \endrst + %> + %> `x` and `y` are salar or vector or matrix of the same size + %> function Dyy = eval_Dyy( self, x, y ) Dyy = Spline2DMexWrapper( 'eval_Dyy', self.objectHandle, x, y ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Set spline surface as closed in `x direction + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.make_x_closed(); + %> + %> \endrst + %> function make_x_closed( self ) Spline2DMexWrapper( 'make_x_closed', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Set spline surface as opened in `x direction + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.make_x_opened(); + %> + %> \endrst + %> function make_x_opened( self ) Spline2DMexWrapper( 'make_x_opened', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return true if spline surface is of closed type in `x`-direction + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> ok = spl.is_x_closed(); + %> + %> \endrst + %> function ok = is_x_closed( self ) ok = Spline2DMexWrapper( 'is_x_closed', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Make spline surface computable only in the `x`-range where is defined. + %> If `x` is outside range an error is produced. + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.make_x_bounded(); + %> + %> \endrst + %> function make_x_bounded( self ) Spline2DMexWrapper( 'make_x_bounded', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Make spline surface computable outside the `x`-range is defined. + %> If `x` is outside range value is extrapolated. + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.make_x_unbounded(); + %> + %> \endrst + %> function make_x_unbounded( self ) Spline2DMexWrapper( 'make_x_unbounded', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Check if spline is computable only in the `x`-range where is defined. + %> Return true if can be computed only in the range. + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> ok = spl.is_x_bounded(); + %> + %> \endrst + %> function ok = is_x_bounded( self ) ok = Spline2DMexWrapper( 'is_x_bounded', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Set spline surface as closed in `y direction + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.make_y_closed(); + %> + %> \endrst + %> function make_y_closed( self ) Spline2DMexWrapper( 'make_y_closed', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Set spline surface as opened in `y direction + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.make_y_opened(); + %> + %> \endrst + %> function make_y_opened( self ) Spline2DMexWrapper( 'make_y_opened', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return true if spline surface is of closed type in `y`-direction + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> ok = spl.is_y_closed(); + %> + %> \endrst + %> function ok = is_y_closed( self ) ok = Spline2DMexWrapper( 'is_y_closed', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Make spline surface computable only in the `y`-range where is defined. + %> If `y` is outside range an error is produced. + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.make_y_bounded(); + %> + %> \endrst + %> function make_y_bounded( self ) Spline2DMexWrapper( 'make_y_bounded', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Make spline surface computable outside the `y`-range is defined. + %> If `y` is outside range value is extrapolated. + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.make_y_unbounded(); + %> + %> \endrst + %> function make_y_unbounded( self ) Spline2DMexWrapper( 'make_y_unbounded', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Check if spline is computable only in the `y`-range where is defined. + %> Return true if can be computed only in the range. + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> ok = spl.is_y_bounded(); + %> + %> \endrst + %> function ok = is_y_bounded( self ) ok = Spline2DMexWrapper( 'is_y_bounded', self.objectHandle ); end diff --git a/toolbox/lib/SplineSet.m b/toolbox/lib/SplineSet.m index fe2aa2c5..ec5212e2 100644 --- a/toolbox/lib/SplineSet.m +++ b/toolbox/lib/SplineSet.m @@ -1,11 +1,45 @@ +%> +%> MATLAB class wrapper for the underlying C++ class +%> classdef SplineSet < handle - %% MATLAB class wrapper for the underlying C++ class properties (SetAccess = private, Hidden = true) - objectHandle; % Handle to the underlying C++ class instance + %> Handle to the underlying C++ class instance + objectHandle; end methods % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Build a spline Set + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> + %> X = [ .... ]; % vector or nodes + %> Y = [ .... ]; % matrix of values or + %> Y = { [....], ...., [....] }; % cell array of vectors + %> kind = { .... } % cell array of strings + %> % with the kind of each spline + %> + %> obj = SplineSet( kind, X, Y ); + %> + %> \endrst + %> + %> + %> Kind is a string and can be any of + %> + %> | kind | meaning | + %> | :----------- | :------------------------------------------------------- | + %> | 'linear' | linear spline (only continuous) | + %> | 'cubic' | cubic spline (\f$ C^2 \f$ function) | + %> | 'akima' | Akima non oscillatory spline (\f$ C^1 \f$ function) | + %> | 'bessel' | bessel non oscillatory spline (\f$ C^1 \f$ function) | + %> | 'pchip' | Monotone \f$ C^1 \f$ function | + %> | 'hermite' | Hermite spline (set \f$ p_k \f$ and \f$ p'_k \f$) | + %> | 'quintic' | Quintic spline (\f$ C^3 \f$ function) | + %> function self = SplineSet( varargin ) self.objectHandle = SplineSetMexWrapper( 'new' ); if nargin > 0 @@ -15,34 +49,110 @@ end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function delete(self) - % Destroy the C++ class instance SplineSetMexWrapper( 'delete', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Build a spline Set + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> obj = SplineSet( kind, X, Y ); + %> + %> \endrst + %> function build( self, kinds, x, y ) SplineSetMexWrapper( 'build', self.objectHandle, kinds, x, y ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p = obj.eval( x ); + %> + %> \endrst + %> function p = eval( self, x ) p = SplineSetMexWrapper( 'eval', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_D = obj.eval_D( x ); + %> + %> \endrst + %> function dp = eval_D( self, x ) dp = SplineSetMexWrapper( 'eval_D', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline second derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_DD = obj.eval_DD( x ); + %> + %> \endrst + %> function ddp = eval_DD( self, x ) ddp = SplineSetMexWrapper( 'eval_DD', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline third derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_DDD = obj.eval_DDD( x ); + %> + %> \endrst + %> function dddp = eval_DDD( self, x ) dddp = SplineSetMexWrapper( 'eval_DDD', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return initial t-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> t = obj.tmin(); + %> + %> \endrst + %> function t = tmin( self, x ) t = SplineSetMexWrapper( 'tmin', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return initial t-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> t = obj.tmax(); + %> + %> \endrst + %> function t = tmax( self, x ) t = SplineSetMexWrapper( 'tmax', self.objectHandle ); end diff --git a/toolbox/lib/SplineVec.m b/toolbox/lib/SplineVec.m index 5ffbb4e9..2b7db8e5 100644 --- a/toolbox/lib/SplineVec.m +++ b/toolbox/lib/SplineVec.m @@ -1,72 +1,308 @@ +%> +%> MATLAB class wrapper for the underlying C++ class +%> +%> The construction of the spline is done as follows +%> +%> - instantiate the spline object +%> +%> \rst +%> +%> .. code-block:: matlab +%> +%> spl = SplineVec(); +%> +%> \endrst +%> +%> - load the points as a matrix `dim x npts` where +%> `dim` is the space dimension and `npts` is the +%> number of poinst +%> +%> \rst +%> +%> .. code-block:: matlab +%> +%> spl.setup( P ); % P is a dim x npts matrix +%> +%> \endrst +%> +%> - build or load the knots +%> +%> \rst +%> +%> .. code-block:: matlab +%> +%> spl.knots( T ); % vector of knots +%> spl.chordal(); % build knots using chordal distance +%> spl.centripetal(; % build knots centripetal +%> +%> \endrst +%> +%> - build the spline, for the moment only `Catmull Rom` +%> +%> \rst +%> +%> .. code-block:: matlab +%> +%> spl.CatmullRom(); +%> +%> \endrst +%> classdef SplineVec < handle - %% MATLAB class wrapper for the underlying C++ class properties (SetAccess = private, Hidden = true) - objectHandle; % Handle to the underlying C++ class instance + %> Handle to the underlying C++ class instance + objectHandle; end methods % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Build an empty parametric spline: + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl = SplineVec(); + %> + %> \endrst + %> function self = SplineVec() self.objectHandle = SplineVecMexWrapper( 'new' ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function delete(self) - % Destroy the C++ class instance SplineVecMexWrapper( 'delete', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function setup( self, y ) - SplineVecMexWrapper( 'setup', self.objectHandle, y ); + %> + %> Setup the point of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.setup( P ); + %> + %> \endrst + %> + function setup( self, P ) + SplineVecMexWrapper( 'setup', self.objectHandle, P ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function knots( self, x ) - SplineVecMexWrapper( 'knots', self.objectHandle, x ); + %> + %> Setup the knots of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> spl.knots( t ); + %> + %> \endrst + %> + function knots( self, t ) + SplineVecMexWrapper( 'knots', self.objectHandle, t ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Get the knots of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> t = spl.get_knots(); + %> + %> \endrst + %> function k = get_knots( self ) k = SplineVecMexWrapper( 'getNodes', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - function chord( self ) - SplineVecMexWrapper( 'chord', self.objectHandle ); + %> + %> Build the knots using chordal distance + %> + %> \rst + %> + %> .. math:: + %> + %> t_0 = 0, \qquad t_k = t_{k-1} + || \mathbf{p}_k - \mathbf{p}_{k-1} || + %> + %> \endrst + %> + function chordal( self ) + SplineVecMexWrapper( 'chordal', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Build the knots using centripetal parametrization + %> + %> \rst + %> + %> .. math:: + %> + %> t_0 = 0, \qquad t_k = t_{k-1} + || \mathbf{p}_k - \mathbf{p}_{k-1} ||^{1/2} + %> + %> \endrst + %> function centripetal( self ) SplineVecMexWrapper( 'centripetal', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Build the spline using Catmull Rom algorithm + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> P = [ 0, 0; 1.34, 5; 5, 8.66; 10, 10; 10.6, 10.4; 10.7, 12; ... + %> 10.7, 28.6; 10.8, 30.2; 11.4, 30.6; 19.6, 30.6; ... + %> 20.2, 30.2; 20.3, 28.6; 20.3, 12; 20.4, 10.4; ... + %> 21, 10; 26, 8.66; 29.66, 5; 31, 0 ]; + %> + %> S = SplineVec(); % initialize spline + %> S.setup(P.'); % load points + %> S.centripetal(); % setup knots + %> + %> % plot interpolation points + %> hold off; + %> plot( P(:,1), P(:,2), 'o','Color','red', ... + %> 'MarkerSize',10,'MarkerFaceColor','blue','MarkerEdgeColor','green'); + %> hold on; + %> % sample spline for plotting + %> t = linspace(S.tmin(),S.tmax(),1000); + %> PP = S.eval(t); + %> + %> % plot curve + %> plot( PP(1,:), PP(2,:), '-', 'Color', 'blue', 'Linewidth', 3); + %> + %> .. image:: ../../images/exampleVec.png + %> :width: 80% + %> :align: center + %> + %> \endrst + %> function CatmullRom( self ) SplineVecMexWrapper( 'CatmullRom', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p = obj.eval( x ); + %> + %> \endrst + %> function p = eval( self, x ) p = SplineVecMexWrapper( 'eval', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_D = obj.eval_D( x ); + %> + %> \endrst + %> function dp = eval_D( self, x ) dp = SplineVecMexWrapper( 'eval_D', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline second derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_DD = obj.eval_DD( x ); + %> + %> \endrst + %> function ddp = eval_DD( self, x ) ddp = SplineVecMexWrapper( 'eval_DD', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline third derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> p_DDD = obj.eval_DDD( x ); + %> + %> \endrst + %> function dddp = eval_DDD( self, x ) dddp = SplineVecMexWrapper( 'eval_DDD', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline curvature at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> kappa = obj.curvature( x ); + %> + %> \endrst + %> function cur = curvature( self, x ) cur = SplineVecMexWrapper( 'eval_curvature', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Evaluate spline curvature derivative at `x` + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> kappa = obj.curvature_D( x ); + %> + %> \endrst + %> function cur_D = curvature_D( self, x ) cur_D = SplineVecMexWrapper( 'eval_curvature_D', self.objectHandle, x ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return initial t-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> t = obj.tmin(); + %> + %> \endrst + %> function t = tmin( self, x ) t = SplineVecMexWrapper( 'tmin', self.objectHandle ); end % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + %> + %> Return initial t-coordinate of the spline + %> + %> \rst + %> + %> .. code-block:: matlab + %> + %> t = obj.tmax(); + %> + %> \endrst + %> function t = tmax( self, x ) t = SplineVecMexWrapper( 'tmax', self.objectHandle ); end diff --git a/toolbox/lib/save_png.m b/toolbox/lib/save_png.m new file mode 100644 index 00000000..b7a5118b --- /dev/null +++ b/toolbox/lib/save_png.m @@ -0,0 +1,7 @@ +function save_png( fname ) + % now our solution, export with two background colors + exportgraphics(gcf, [ fname, '.pdf'], 'ContentType', 'image','ContentType','vector'); + system([ '/usr/local/bin/pdf2svg ', fname, '.pdf ', fname, '.svg'] ); + system([ '/usr/local/bin/pdftoppm -r 600 -png ', fname, '.pdf ', fname]); + movefile([fname, '-1.png'], [ fname, '.png']) +end diff --git a/toolbox/setup.m b/toolbox/setup.m index 277d094b..3b76746a 100644 --- a/toolbox/setup.m +++ b/toolbox/setup.m @@ -1,2 +1,7 @@ addpath('lib'); addpath('bin'); +addpath('src'); +addpath('tests'); +addpath('src/Utils'); +addpath('src/Utils/fmt'); +addpath('src_mex'); diff --git a/toolbox/src_mex/mex_Spline1DMexWrapper.cc b/toolbox/src_mex/mex_Spline1DMexWrapper.cc index d80ac167..3ebb8769 100644 --- a/toolbox/src_mex/mex_Spline1DMexWrapper.cc +++ b/toolbox/src_mex/mex_Spline1DMexWrapper.cc @@ -311,6 +311,33 @@ namespace Splines { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + static + void + do_y_min_max( + int nlhs, mxArray *plhs[], + int nrhs, mxArray const *prhs[] + ) { + #define CMD "Spline1DMexWrapper('y_min_max',OBJ): " + MEX_ASSERT2( nlhs == 6, CMD "expected 6 output, nlhs = {}\n", nlhs ); + MEX_ASSERT2( nrhs == 2, CMD "expected 2 input, nrhs = {}\n", nrhs ); + Spline * ptr = DATA_GET( arg_in_1 ); + integer i_min_pos, i_max_pos; + real_type x_min_pos, y_min, x_max_pos, y_max; + ptr->y_min_max( + i_min_pos, x_min_pos, y_min, + i_max_pos, x_max_pos, y_max + ); + setScalarInt ( arg_out_0, i_min_pos ); + setScalarValue( arg_out_1, x_min_pos ); + setScalarValue( arg_out_2, y_min ); + setScalarInt ( arg_out_3, i_max_pos ); + setScalarValue( arg_out_4, x_max_pos ); + setScalarValue( arg_out_5, y_max ); + #undef CMD + } + + // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + static void do_eval( @@ -821,6 +848,7 @@ namespace Splines { {"build",do_build}, {"degree",do_degree}, {"order",do_order}, + {"y_min_max",do_y_min_max}, {"eval",do_eval}, {"eval_D",do_eval_D}, {"eval_DD",do_eval_DD}, diff --git a/toolbox/src_mex/mex_Spline2DMexWrapper.cc b/toolbox/src_mex/mex_Spline2DMexWrapper.cc index 57c1770f..95d2bd0a 100644 --- a/toolbox/src_mex/mex_Spline2DMexWrapper.cc +++ b/toolbox/src_mex/mex_Spline2DMexWrapper.cc @@ -188,7 +188,7 @@ namespace Splines { ); bool fortran_storage = true; - bool transposed = false; + bool transposed = true; integer ldZ = nx; diff --git a/toolbox/src_mex/mex_SplineVecMexWrapper.cc b/toolbox/src_mex/mex_SplineVecMexWrapper.cc index 4a1973cc..b98d8dca 100644 --- a/toolbox/src_mex/mex_SplineVecMexWrapper.cc +++ b/toolbox/src_mex/mex_SplineVecMexWrapper.cc @@ -46,7 +46,7 @@ either expressed or implied, of the FreeBSD Project. "% SplineVecMexWrapper( 'delete', obj ); %\n" \ "% SplineVecMexWrapper( 'setup', obj, Y ); %\n" \ "% SplineVecMexWrapper( 'knots', obj, X ); %\n" \ -"% SplineVecMexWrapper( 'chord', obj ); %\n" \ +"% SplineVecMexWrapper( 'chordal', obj ); %\n" \ "% SplineVecMexWrapper( 'centripetal', obj ); %\n" \ "% SplineVecMexWrapper( 'CatmullRom', obj ); %\n" \ "% P = SplineVecMexWrapper( 'eval', obj, X ); %\n" \ @@ -181,10 +181,10 @@ namespace Splines { static void - do_chord( int nlhs, mxArray *plhs[], - int nrhs, mxArray const *prhs[] ) { + do_chordal( int nlhs, mxArray *plhs[], + int nrhs, mxArray const *prhs[] ) { - #define CMD "SplineVecMexWrapper( 'chord', obj ): " + #define CMD "SplineVecMexWrapper( 'chordal', obj ): " MEX_ASSERT2( nrhs == 2, CMD "expected 2 inputs, nrhs = {}\n", nrhs ); MEX_ASSERT2( nlhs == 0, CMD "expected 0 output, nlhs = {}\n", nlhs ); @@ -447,7 +447,7 @@ namespace Splines { {"delete",do_delete}, {"setup",do_setup}, {"knots",do_knots}, - {"chord",do_chord}, + {"chordal",do_chordal}, {"centripetal",do_centripetal}, {"CatmullRom",do_CatmullRom}, {"getNodes",do_getNodes}, diff --git a/toolbox/tests/for_icon.m b/toolbox/tests/Splines_for_icon.m similarity index 98% rename from toolbox/tests/for_icon.m rename to toolbox/tests/Splines_for_icon.m index 6b0e35aa..d856941b 100644 --- a/toolbox/tests/for_icon.m +++ b/toolbox/tests/Splines_for_icon.m @@ -43,3 +43,5 @@ surf(XX,YY,ZZ,'Linestyle',':'), view(145,40), set(gca,'Fontsize',16); title('akima'); + +save_png('../icon'); diff --git a/toolbox/tests/test1.m b/toolbox/tests/Splines_test1.m similarity index 100% rename from toolbox/tests/test1.m rename to toolbox/tests/Splines_test1.m diff --git a/toolbox/tests/test2.m b/toolbox/tests/Splines_test2.m similarity index 100% rename from toolbox/tests/test2.m rename to toolbox/tests/Splines_test2.m diff --git a/toolbox/tests/test3.m b/toolbox/tests/Splines_test3.m similarity index 100% rename from toolbox/tests/test3.m rename to toolbox/tests/Splines_test3.m diff --git a/toolbox/tests/test4.m b/toolbox/tests/Splines_test4.m similarity index 100% rename from toolbox/tests/test4.m rename to toolbox/tests/Splines_test4.m diff --git a/toolbox/tests/test5.m b/toolbox/tests/Splines_test5.m similarity index 100% rename from toolbox/tests/test5.m rename to toolbox/tests/Splines_test5.m diff --git a/toolbox/tests/test6.m b/toolbox/tests/Splines_test6.m similarity index 100% rename from toolbox/tests/test6.m rename to toolbox/tests/Splines_test6.m diff --git a/toolbox/tests/Splines_test7.m b/toolbox/tests/Splines_test7.m new file mode 100644 index 00000000..9aefd387 --- /dev/null +++ b/toolbox/tests/Splines_test7.m @@ -0,0 +1,73 @@ +%%-------------------------------------------------------------------------%% +%% %% +%% Copyright (C) 2020 %% +%% %% +%% , __ , __ %% +%% /|/ \ /|/ \ %% +%% | __/ _ ,_ | __/ _ ,_ %% +%% | \|/ / | | | | \|/ / | | | %% +%% |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ %% +%% /| /| %% +%% \| \| %% +%% %% +%% Enrico Bertolazzi %% +%% Dipartimento di Ingegneria Industriale %% +%% Universita` degli Studi di Trento %% +%% email: enrico.bertolazzi@unitn.it %% +%% %% +%%-------------------------------------------------------------------------%% + +xx1 = [ 0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15 ]; +yy1 = [ 10, 10, 10, 10, 10, 10, 10.5, 15, 50, 60, 85 ]; + +xx2 = [ 0, 2, 3, 5, 6, 8, 9, 11, 12, 14, 15 ]; +yy2 = [ 10, 10, 10, 10, 10, 10, 10.5, 15, 50, 60, 85 ]; + +xx3 = [ 7.99, 8.09, 8.19, 8.7, 9.2, 10, 12, 15, 20 ]; +yy3 = [ 0, 2.76429e-5, 4.37498e-2, 0.169183, 0.469428, 0.943740, 0.998636, 0.999919, 0.999994 ]; + +xx4 = [ 595, 635, 695, 795, 855, 875, 895, 915, 935, 985, 1035, 1075 ]; +yy4 = [ 0.644, 0.652, 0.644, 0.694, 0.907, 1.336, 2.169, 1.598, 0.916, 0.607, 0.603, 0.608 ]; + +XXX = { xx1, xx2, xx3, xx4 }; +YYY = { yy1, yy2, yy3, yy4 }; +LOC = {'northwest','northwest','southeast','northwest' }; + +fmt1 = {'LineWidth',3,'Color',[0.7,0.7,1]}; +fmt2 = {'o','Color','red','MarkerSize',10,'MarkerFaceColor','yellow','MarkerEdgeColor','red'}; +fmt3 = {'-','Color','black','Linewidth',2}; +fmt4 = {'o','Color','blue','MarkerSize',10,'MarkerFaceColor','black','MarkerEdgeColor','black'}; + +close all; + +subtype = 'pchip'; + +for k=1:4 + X = XXX{k}; + Y = YYY{k}; + + pc = Spline1D('pchip',X,Y); + qu = Spline1D('quintic',X,Y,subtype); + + XX = X(1):(X(end)-X(1))/1000:X(end); + + Y1 = pc.eval(XX); + Y2 = qu.eval(XX); + + subplot(2,2,k); + hold off; + plot( X, Y, 'o' ); + hold on; + plot( XX, Y1, XX, Y2, 'LineWidth', 3 ); + + legend('data','pchip','quintic'); + legend('boxoff'); + legend('Location',LOC{k}); + + [ipos,xmi,ymi,jpos,xma,yma] = pc.eval_y_min_max(); + plot( [xmi,xma], [ymi,yma], fmt2{:} ); + + [ipos,xmi,ymi,jpos,xma,yma] = qu.eval_y_min_max(); + plot( [xmi,xma], [ymi,yma], fmt4{:} ); + +end diff --git a/toolbox/tests/icon.jpg b/toolbox/tests/icon.jpg deleted file mode 100644 index 194467c6..00000000 Binary files a/toolbox/tests/icon.jpg and /dev/null differ diff --git a/toolbox/tests/image_doc.m b/toolbox/tests/image_doc.m new file mode 100644 index 00000000..6bc00e2a --- /dev/null +++ b/toolbox/tests/image_doc.m @@ -0,0 +1,45 @@ +%%-------------------------------------------------------------------------%% +%% %% +%% Copyright (C) 2020 %% +%% %% +%% , __ , __ %% +%% /|/ \ /|/ \ %% +%% | __/ _ ,_ | __/ _ ,_ %% +%% | \|/ / | | | | \|/ / | | | %% +%% |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ %% +%% /| /| %% +%% \| \| %% +%% %% +%% Enrico Bertolazzi %% +%% Dipartimento di Ingegneria Industriale %% +%% Universita` degli Studi di Trento %% +%% email: enrico.bertolazzi@unitn.it %% +%% %% +%%-------------------------------------------------------------------------%% + +P = [ 0, 0; 1.34, 5; 5, 8.66; 10, 10; 10.6, 10.4; 10.7, 12; ... + 10.7, 28.6; 10.8, 30.2; 11.4, 30.6; 19.6, 30.6; ... + 20.2, 30.2; 20.3, 28.6; 20.3, 12; 20.4, 10.4; ... + 21, 10; 26, 8.66; 29.66, 5; 31, 0 ]; + +S = SplineVec(); +S.setup(P.'); +S.centripetal(); +S.CatmullRom(); + +% plot interpolation points +hold off; +plot( P(:,1), P(:,2), ... + 'o','Color','red', ... + 'MarkerSize',10,'MarkerFaceColor','blue','MarkerEdgeColor','green'); +hold on; +tmin = S.tmin(); +tmax = S.tmax(); +t = linspace(tmin,tmax,1000); +PP = S.eval(t); + +% plot curve +plot( PP(1,:), PP(2,:), '-', 'Color', 'blue', 'Linewidth', 3); + +save_png('exampleVec'); + diff --git a/toolbox/tests/image_doc2.m b/toolbox/tests/image_doc2.m new file mode 100644 index 00000000..6a9944b8 --- /dev/null +++ b/toolbox/tests/image_doc2.m @@ -0,0 +1,36 @@ +%%-------------------------------------------------------------------------%% +%% %% +%% Copyright (C) 2020 %% +%% %% +%% , __ , __ %% +%% /|/ \ /|/ \ %% +%% | __/ _ ,_ | __/ _ ,_ %% +%% | \|/ / | | | | \|/ / | | | %% +%% |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ %% +%% /| /| %% +%% \| \| %% +%% %% +%% Enrico Bertolazzi %% +%% Dipartimento di Ingegneria Industriale %% +%% Universita` degli Studi di Trento %% +%% email: enrico.bertolazzi@unitn.it %% +%% %% +%%-------------------------------------------------------------------------%% + +X = -2:0.01:2; +Y = -2:0.01:2; +[XX,YY] = ndgrid(X,Y); +ZZ = peaks(XX,YY); +spl = Spline2D('bicubic',X,Y,ZZ); + +surf(XX,YY,ZZ), view(145,-2), set(gca,'Fontsize',16); + +X = -2:0.1:2; +Y = -2:0.1:2; +[XX,YY] = ndgrid(X,Y); + +ZZ = spl.eval(XX,YY); + +surf(XX,YY,ZZ,'Linestyle',':'), view(145,40), set(gca,'Fontsize',16); + +save_png('exampleSurf'); \ No newline at end of file